이 글에서는 Python의 Pillow 라이브러리를 사용하여 이미지에 모드 필터(ModeFilter)를 적용하는 방법을 알아보겠습니다. 모드 필터링은 이미지에서 선택한 윈도우(창 영역) 내 각 픽셀의 값을 해당 윈도우 안에서 가장 자주 나타나는 값, 즉 최빈값(mode)으로 대체하는 기법입니다. 이를 통해 이미지의 잡음을 줄이면서 색상의 경계를 비교적 잘 유지할 수 있습니다.
Pillow 라이브러리에서는 filter() 함수 하나만으로 다양한 필터를 간편하게 적용할 수 있으며, 이번 예제에서는 그중 ImageFilter.ModeFilter를 사용해 보겠습니다.
원본 이미지

알고리즘
1단계: Pillow에서 Image 모듈을 임포트한다.
2단계: 처리할 이미지 파일을 연다.
3단계: filter() 함수를 호출하고 ModeFilter를 지정한다.
4단계: 필터가 적용된 결과 이미지를 화면에 표시한다.
예제 코드
from PIL import Image, ImageFilter
im = Image.open('testimage.jpg')
im1 = im.filter(ImageFilter.ModeFilter(size = 7))
im1.show()코드 설명
Image.open('testimage.jpg'): 현재 디렉터리의 'testimage.jpg' 파일을 불러옵니다.ImageFilter.ModeFilter(size = 7): 7×7 크기의 윈도우를 지정하여 모드 필터를 생성합니다.size값이 클수록 더 넓은 영역의 최빈값을 계산하므로 필터 효과가 강해집니다.im1.show(): 필터가 적용된 이미지를 기본 이미지 뷰어로 출력합니다.
출력 결과

실행 결과를 보면 원본 이미지와 비교했을 때 작은 노이즈가 제거되고, 색상이 균일한 영역 중심으로 부드럽게 정리된 것을 확인할 수 있습니다. 모드 필터는 특히 얼룩진 잡음(salt-and-pepper noise)이 있는 이미지를 정리할 때 유용하게 활용됩니다.