[python] 이미지 히스토그램 분석하기

이미지 히스토그램은 이미지의 밝기 값을 픽셀 수로 표현한 그래프입니다. 이를 통해 이미지의 밝기 분포를 확인하고, 이미지의 특징을 파악할 수 있습니다. Python의 OpenCV 라이브러리를 사용하여 간단한 이미지 히스토그램 분석을 수행해보겠습니다.

이미지 불러오기

먼저, 이미지를 불러와야 합니다. OpenCV를 사용하여 다음과 같이 이미지를 불러올 수 있습니다.

import cv2

# 이미지 불러오기
image = cv2.imread('image.jpg', 0)

위의 코드에서 image.jpg는 분석하고자 하는 이미지의 파일 경로입니다. 0은 이미지를 흑백으로 변환하라는 의미입니다. 만약 칼라 이미지를 분석하려면 1을 사용하면 됩니다.

히스토그램 생성하기

이제 이미지의 히스토그램을 생성해보겠습니다. 다음과 같이 cv2.calcHist() 함수를 사용하여 히스토그램을 생성할 수 있습니다.

# 히스토그램 생성
hist = cv2.calcHist([image], [0], None, [256], [0,256])

위의 코드에서 image는 히스토그램을 생성할 이미지입니다. [0]은 흑백 이미지의 경우 첫 번째 채널을 의미하며, 칼라 이미지의 경우 적색(Red) 채널을 선택합니다. [256]은 히스토그램의 구간(bin) 수를 의미합니다. 위의 예제에서는 0부터 255까지의 구간을 사용했습니다.

히스토그램 시각화하기

히스토그램을 시각화하여 확인해보겠습니다. Matplotlib 라이브러리를 사용하여 히스토그램을 그래프로 표현할 수 있습니다. 다음은 히스토그램을 시각화하는 코드입니다.

import matplotlib.pyplot as plt

# 히스토그램 시각화
plt.plot(hist)
plt.xlim([0,256])
plt.show()

위의 코드에서 hist는 히스토그램 데이터입니다. plt.xlim() 함수는 x축의 범위를 지정하는 함수로, 위의 예제에서는 0부터 255까지의 범위로 설정했습니다.

결론

위의 과정을 통해 이미지의 히스토그램을 분석할 수 있습니다. 히스토그램을 활용하여 이미지의 밝기 분포를 파악하고, 이미지 처리 및 컴퓨터 비전 분야에서 다양한 알고리즘을 개발할 수 있습니다.

참고 자료