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

Pillow 라이브러리로 이미지 각 밴드(채널)의 픽셀 평균값 계산하기

Pillow 라이브러리를 사용하면 이미지의 각 밴드(채널)에 포함된 모든 픽셀의 평균값을 아주 간단하게 계산할 수 있습니다. 일반적인 RGB 이미지는 빨강(Red), 초록(Green), 파랑(Blue) 세 개의 채널로 구성되어 있기 때문에, 계산 결과 역시 세 개의 값으로 이루어진 리스트 형태로 반환됩니다.

원본 이미지

Pillow 라이브러리로 이미지 각 밴드(채널)의 픽셀 평균값 계산하기

처리 순서

1단계: PIL에서 Image와 ImageStat 모듈을 가져옵니다.
2단계: 이미지 파일을 엽니다.
3단계: 열린 이미지를 ImageStat 클래스의 Stat 함수에 전달합니다.
4단계: stat 객체의 mean 값을 출력합니다.

예제 코드

from PIL import Image, ImageStat

im = Image.open('image_test.jpg')
stat = ImageStat.Stat(im)
print(stat.mean)

실행 결과

[76.00257724463832, 69.6674300254453, 64.38017448200654]

코드 설명

ImageStat.Stat() 함수는 이미지 객체를 입력받아 해당 이미지의 통계 정보를 담은 객체를 생성합니다. 이 객체의 mean 속성에는 각 채널별 픽셀 값의 산술 평균이 순서대로 저장됩니다.

위 실행 결과를 살펴보면 첫 번째 값(약 76.0)은 R 채널, 두 번째 값(약 69.67)은 G 채널, 세 번째 값(약 64.38)은 B 채널의 픽셀 평균입니다. 참고로 같은 방식으로 stat.median(중앙값), stddev(표준편차) 등의 속성도 함께 확인할 수 있어, 이미지의 전반적인 밝기 분포나 색감 특성을 분석하는 데 유용하게 활용할 수 있습니다.