이 프로그램에서는 Python의 Pillow 라이브러리를 사용하여 이미지의 각 채널(밴드)에 있는 모든 픽셀 값의 중앙값(median)을 계산하는 방법을 알아봅니다.
일반적인 RGB 컬러 이미지는 빨강(Red), 초록(Green), 파랑(Blue)의 세 가지 색상 채널로 구성되어 있습니다. 따라서 중앙값을 계산하면 각 채널별 중앙값이 담긴 길이 3의 리스트를 얻게 됩니다.
중앙값은 모든 픽셀 값을 크기 순으로 정렬했을 때 정확히 가운데 위치하는 값으로, 평균값보다 극단적인 이상치(outlier)의 영향을 덜 받는 통계적 지표입니다. 이미지 분석이나 전처리 작업에서 유용하게 활용됩니다.
원본 이미지

알고리즘
1단계: PIL에서 Image와 ImageStat 모듈을 임포트합니다. 2단계: Image.open() 함수로 이미지 파일을 엽니다. 3단계: 열린 이미지 객체를 ImageStat.Stat() 클래스에 전달합니다. 4단계: stat.median 속성을 출력하여 각 채널의 중앙값을 확인합니다.
예제 코드
from PIL import Image, ImageStat
im = Image.open('image_test.jpg')
stat = ImageStat.Stat(im)
print(stat.median)실행 결과
[41, 43, 40]
위 출력 결과에서 볼 수 있듯이, 첫 번째 값(R), 두 번째 값(G), 세 번째 값(B) 순서대로 각 채널의 픽셀 중앙값이 리스트 형태로 반환됩니다. 즉, 이 이미지에서 빨강 채널의 중앙값은 41, 초록 채널은 43, 파랑 채널은 40입니다.
참고로 ImageStat.Stat 클래스는 median 외에도 mean(평균), stddev(표준편차), extrema(최솟값·최댓값) 등 다양한 이미지 통계 정보를 함께 제공하므로, 이미지의 밝기 분포나 특성을 분석할 때 매우 편리하게 사용할 수 있습니다.