이 프로그램에서는 Pillow 라이브러리를 사용하여 이미지의 각 밴드(채널)에 포함된 모든 픽셀의 분산(variance)을 계산합니다. 일반적인 RGB 컬러 이미지는 빨강(R), 초록(G), 파랑(B) 세 개의 채널로 구성되어 있으므로, 실행 결과로 세 개의 값이 담긴 리스트를 얻게 됩니다.
분산은 픽셀 값들이 평균으로부터 얼마나 흩어져 있는지를 나타내는 지표입니다. 분산이 클수록 해당 채널의 명암 대비가 크다는 의미이며, 이미지의 전반적인 톤과 특성을 분석할 때 유용하게 활용됩니다.
원본 이미지

알고리즘
1단계: PIL에서 Image와 ImageStat 라이브러리를 임포트합니다.
2단계: Image.open()으로 이미지 파일을 엽니다.
3단계: 열린 이미지를 ImageStat 클래스의 Stat() 함수에 전달합니다.
4단계: stat 객체의 var 속성을 출력하여 각 채널의 분산 값을 확인합니다.
예제 코드
from PIL import Image, ImageStat
im = Image.open('image_test.jpg')
stat = ImageStat.Stat(im)
print(stat.var)ImageStat.Stat() 객체는 mean(평균), median(중앙값), stddev(표준편차), var(분산) 등 다양한 통계 속성을 제공하며, 그중 var 속성이 각 채널별 픽셀 분산을 담고 있습니다.
출력 결과
[5221.066590958682, 4388.697801428673, 4291.257706548981]
위 결과에서 첫 번째 값은 R 채널, 두 번째 값은 G 채널, 세 번째 값은 B 채널의 픽셀 분산입니다. 이처럼 Pillow의 ImageStat 모듈을 활용하면 복잡한 수식 없이도 이미지의 채널별 통계 정보를 손쉽게 구할 수 있습니다.