[파이썬] Pillow 이미지의 색상 분포 분석하기
이미지 처리를 위한 파이썬 라이브러리인 Pillow는 다양한 이미지 조작 기능을 제공합니다. 이 중에서 이미지의 색상 분포를 분석해보는 방법에 대해 알아보겠습니다.
필요한 라이브러리 설치하기
먼저, Pillow 라이브러리를 설치해야 합니다. 아래 명령어를 사용하여 설치할 수 있습니다.
pip install pillow
코드 예제
이제, Pillow를 사용하여 이미지의 색상 분포를 분석하는 코드를 작성해보겠습니다. 아래는 예제 코드입니다.
from PIL import Image
import numpy as np
import matplotlib.pyplot as plt
# 이미지 불러오기
image = Image.open('image.jpg')
# RGB 색상으로 변환
image = image.convert('RGB')
# 이미지 데이터를 numpy 배열로 변환
pixels = np.array(image)
# 각 색상 채널별 히스토그램 계산
red_hist = np.histogram(pixels[:, :, 0], bins=256, range=[0, 256])
green_hist = np.histogram(pixels[:, :, 1], bins=256, range=[0, 256])
blue_hist = np.histogram(pixels[:, :, 2], bins=256, range=[0, 256])
# 히스토그램 시각화
plt.figure(figsize=(10, 4))
plt.subplot(131)
plt.plot(red_hist[1][:-1], red_hist[0], color='red')
plt.title('Red Histogram')
plt.xlabel('Intensity')
plt.ylabel('Frequency')
plt.subplot(132)
plt.plot(green_hist[1][:-1], green_hist[0], color='green')
plt.title('Green Histogram')
plt.xlabel('Intensity')
plt.ylabel('Frequency')
plt.subplot(133)
plt.plot(blue_hist[1][:-1], blue_hist[0], color='blue')
plt.title('Blue Histogram')
plt.xlabel('Intensity')
plt.ylabel('Frequency')
plt.tight_layout()
plt.show()
위 코드에서는 Pillow의 Image
모듈을 사용하여 이미지를 불러온 후, RGB 색상으로 변환합니다. 그리고 numpy 배열로 변환한 후, 각 색상 채널별로 히스토그램을 계산하고 이를 시각화합니다.
사용 방법
- 이미지 파일을 불러오려면 코드의
image.jpg
부분을 해당 이미지 파일의 경로로 수정합니다. - 코드를 실행하면 RGB 색상 채널별로 계산된 히스토그램이 시각화되어 나타납니다.
결론
Pillow의 강력한 이미지 처리 기능을 활용하여 이미지의 색상 분포를 분석하는 방법에 대해 알아보았습니다. 이를 통해 이미지의 색상 특성을 파악할 수 있고, 향후 이미지 처리 작업에 도움이 될 수 있습니다.