[파이썬] Pillow 히스토그램 생성하기

이번 글에서는 Python의 Pillow 라이브러리를 사용하여 이미지의 히스토그램을 생성하는 방법을 알아보겠습니다.

Pillow 라이브러리란?

Pillow는 Python에서 이미지 처리를 위한 강력하고 사용하기 쉬운 라이브러리입니다. 이미지를 로드하고, 변환하고, 필터링하고, 히스토그램을 생성하는 등 다양한 이미지 작업을 할 수 있습니다.

히스토그램이란?

히스토그램은 이미지의 픽셀 값 분포를 그래프 형태로 나타낸 것입니다. 이를 통해 이미지의 밝기, 색상, 대비 등을 시각적으로 파악할 수 있습니다. 히스토그램은 이미지 처리 및 컴퓨터 비전 분야에서 자주 활용됩니다.

Pillow로 히스토그램 생성하기

다음은 Pillow를 사용하여 이미지의 히스토그램을 생성하는 예시 코드입니다.

from PIL import Image
from matplotlib import pyplot as plt

# 이미지 로드
image = Image.open('image.jpg')

# 이미지를 그레이스케일로 변환
gray_image = image.convert('L')

# 히스토그램 생성
histogram = gray_image.histogram()

# 그래프로 히스토그램 그리기
plt.hist(histogram, bins=256, color='gray', alpha=0.7)
plt.xlabel('Pixel Value')
plt.ylabel('Frequency')
plt.title('Image Histogram')
plt.show()

위 코드에서는 먼저 PIL 패키지의 Image 모듈을 사용하여 이미지를 로드합니다. 이후 convert() 함수를 사용하여 이미지를 그레이스케일로 변환합니다. 그레이스케일로 변환하는 이유는 RGB 이미지의 경우 각각의 채널에 대한 히스토그램을 따로 생성할 수도 있지만, 여기서는 채널별로 분리하지 않고 전체적인 밝기에 대한 히스토그램을 생성하기 위함입니다.

histogram() 함수를 사용하여 이미지의 히스토그램을 생성한 후, matplotlib 패키지를 사용하여 히스토그램을 그래프로 그립니다. 이후 plt.xlabel(), plt.ylabel(), plt.title() 함수를 사용하여 축 레이블과 제목을 설정하고, plt.show()를 호출하여 그래프를 보여줍니다.

마무리

이제 Pillow를 사용하여 Python에서 이미지의 히스토그램을 생성하는 방법을 알아보았습니다. 히스토그램은 이미지 처리 및 컴퓨터 비전 분야에서 매우 유용하게 사용될 수 있으므로, 필요한 경우 다양한 히스토그램 분석 기법을 적용하여 더 깊이있는 분석을 할 수도 있습니다.