이미지 히스토그램은 이미지의 색상 분포를 시각적으로 나타내는 매우 유용한 도구입니다. OpenCV-Python 라이브러리를 사용하면 이미지의 히스토그램을 쉽게 계산하고 시각화할 수 있습니다. 이번 블로그 포스트에서는 OpenCV-Python을 사용하여 이미지 히스토그램을 계산하고 표시하는 방법에 대해 알아보겠습니다.
1. OpenCV-Python 설치
OpenCV-Python을 사용하기 위해서는 먼저 Python 환경에 해당 라이브러리를 설치해야 합니다. 아래의 명령어를 사용하여 설치할 수 있습니다.
pip install opencv-python
2. 이미지 로드
히스토그램을 계산하기 위해 먼저 이미지를 로드해야 합니다. OpenCV-Python을 사용하여 이미지를 로드하는 방법은 다음과 같습니다.
import cv2
# 이미지 파일 로드
image = cv2.imread('image.jpg')
# 이미지 보기
cv2.imshow('Image', image)
cv2.waitKey(0)
cv2.destroyAllWindows()
3. 히스토그램 계산
이제 이미지를 로드했으니 히스토그램을 계산해보겠습니다. 히스토그램은 픽셀 값의 분포를 나타내는 그래프입니다. OpenCV-Python에서는 cv2.calcHist()
함수를 사용하여 히스토그램을 계산할 수 있습니다.
import cv2
import numpy as np
from matplotlib import pyplot as plt
# 이미지 파일 로드
image = cv2.imread('image.jpg')
# 그레이스케일로 변환
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
# 히스토그램 계산
hist = cv2.calcHist([gray], [0], None, [256], [0,256])
# 히스토그램 그리기
plt.plot(hist)
plt.xlabel('Pixel Value')
plt.ylabel('Frequency')
plt.title('Histogram')
plt.show()
4. 히스토그램 시각화
히스토그램을 계산한 후에는 시각화하여 결과를 살펴볼 수 있습니다. OpenCV-Python에서는 matplotlib
라이브러리를 사용하여 히스토그램을 그릴 수 있습니다. 위의 코드에서 hist
변수를 사용하여 히스토그램을 그렸습니다.
5. 히스토그램 평활화
히스토그램 평활화는 이미지의 대비를 개선하는 기술로, 히스토그램 분포를 균등하게 만듭니다. OpenCV-Python에서는 cv2.equalizeHist()
함수를 사용하여 히스토그램 평활화를 수행할 수 있습니다.
import cv2
import numpy as np
from matplotlib import pyplot as plt
# 이미지 파일 로드
image = cv2.imread('image.jpg')
# 그레이스케일로 변환
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
# 히스토그램 평활화
equalized = cv2.equalizeHist(gray)
# 평활화된 히스토그램 계산
hist_equalized = cv2.calcHist([equalized], [0], None, [256], [0,256])
# 평활화된 히스토그램 그리기
plt.plot(hist_equalized)
plt.xlabel('Pixel Value')
plt.ylabel('Frequency')
plt.title('Histogram (Equalized)')
plt.show()
마무리
이번 블로그 포스트에서는 OpenCV-Python을 사용하여 이미지 히스토그램을 계산하고 시각화하는 방법에 대해 알아보았습니다. 히스토그램을 활용하면 이미지의 색상 분포를 더 잘 이해할 수 있으며, 히스토그램 평활화를 통해 이미지의 대비를 개선할 수 있습니다. OpenCV-Python을 사용하여 이미지 처리 및 분석에 다양한 기능을 쉽고 간편하게 수행할 수 있습니다.
더 많은 OpenCV-Python 기능과 예제 코드는 OpenCV 공식 문서를 참조하시기 바랍니다.