Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

파이썬 Pillow 라이브러리로 이미지에 MaxFilter(최대 필터) 적용하기

이 글에서는 파이썬의 Pillow 라이브러리를 사용해 이미지에 최대 필터(MaxFilter)를 적용하는 방법을 살펴봅니다. 최대 필터링은 이미지에서 선택한 윈도우(창) 내부의 각 픽셀 값을 해당 윈도우 안에서 가장 밝은 픽셀, 즉 최댓값으로 대체하는 기법입니다. 이 과정을 거치면 이미지의 밝은 영역이 확장되고, 작은 노이즈나 어두운 점들이 자연스럽게 제거되는 효과를 얻을 수 있습니다.

Pillow에서는 filter() 함수 하나만으로 다양한 필터를 손쉽게 적용할 수 있으며, 그중 ImageFilter.MaxFilter가 바로 최대 필터의 역할을 담당합니다.

원본 이미지

파이썬 Pillow 라이브러리로 이미지에 MaxFilter(최대 필터) 적용하기

알고리즘

1단계: Pillow에서 Image 모듈을 임포트합니다.
2단계: 처리할 이미지 파일을 엽니다.
3단계: filter() 함수를 호출하고 MaxFilter를 지정합니다.
4단계: 결과 이미지를 화면에 출력합니다.

예제 코드

from PIL import Image, ImageFilter

im = Image.open('testimage.jpg')
im1 = im.filter(ImageFilter.MaxFilter(size = 7))
im1.show()

코드 설명

Image.open()으로 이미지를 불러온 뒤, im.filter() 메서드에 ImageFilter.MaxFilter(size=7) 객체를 전달합니다. 여기서 size 매개변수는 필터가 연산에 사용할 정사각형 윈도우의 크기를 의미하며, 반드시 홀수 값(예: 3, 5, 7)이어야 합니다. 값이 커질수록 더 넓은 영역의 최댓값이 반영되어 밝은 부분이 더욱 두드러지게 나타납니다. 마지막으로 show()를 호출하면 필터가 적용된 결과 이미지를 확인할 수 있습니다.

출력 결과

파이썬 Pillow 라이브러리로 이미지에 MaxFilter(최대 필터) 적용하기