이 튜토리얼에서는 Python의 Pillow 라이브러리를 사용하여 이미지에 최소 필터(MinFilter)를 적용하는 방법을 알아봅니다.
최소 필터링(Minimum Filtering)은 이미지 위에 설정한 윈도우(창) 영역 안의 각 픽셀 값을, 해당 윈도우 내에서 가장 작은 픽셀 값으로 대체하는 기법입니다. 이 과정을 통해 이미지의 밝은 노이즈가 제거되고 전체적으로 어두운 톤의 부드러운 효과가 나타납니다. Pillow 라이브러리에서는 filter() 함수 하나만으로 다양한 필터를 손쉽게 적용할 수 있습니다.
원본 이미지

알고리즘
1단계: Pillow에서 Image 모듈을 임포트합니다.
2단계: 대상 이미지 파일을 엽니다.
3단계: filter() 함수를 호출하고 MinFilter를 지정합니다.
4단계: 처리된 결과 이미지를 화면에 표시합니다.
예제 코드
from PIL import Image, ImageFilter
im = Image.open('testimage.jpg')
im1 = im.filter(ImageFilter.MinFilter(size=7))
im1.show()
코드 설명
ImageFilter.MinFilter(size=7)에서 size 매개변수는 필터가 적용되는 윈도우의 크기를 의미합니다. size가 7이면 7×7 크기의 영역 내 최소 픽셀 값으로 각 픽셀이 대체됩니다. 윈도우 크기가 커질수록 필터 효과는 더 강하게 나타나지만, 이미지 디테일은 그만큼 많이 사라지므로 용도에 맞게 조절하는 것이 좋습니다.
출력 결과

실행 결과를 보면 원본 이미지보다 전체적으로 어두워지고, 밝은 점 형태의 노이즈가 제거된 것을 확인할 수 있습니다. 이처럼 MinFilter는 소금-후추(salt-and-pepper) 노이즈 중 흰색 노이즈를 제거하거나 이미지를 침식(erode)시키는 효과가 필요할 때 유용하게 활용됩니다.