Python을 사용하여 이미지에서 히스토그램 평준화를 수행하는 방법
소개:
히스토그램 평준화는 이미지의 회색조 분포를 더욱 균일하게 만들기 위해 이미지의 픽셀 값을 조정하는 일반적인 이미지 향상 방법입니다. 이미지의 대비. 이 기사에서는 Python에서 OpenCV 라이브러리를 사용하여 이미지의 히스토그램 평준화를 구현하는 방법을 알아봅니다.
1. 필요한 라이브러리 가져오기
먼저 Python에서 필요한 라이브러리를 가져와야 합니다. numpy는 배열을 처리하는 데 사용되고, matplotlib는 이미지를 표시하는 데 사용되고, cv2는 이미지 처리에 사용됩니다.
import numpy as np import cv2 from matplotlib import pyplot as plt
2. 이미지 로드
이미지를 로드하려면 cv2.imread() 함수를 사용합니다. 이 함수는 이미지 파일의 경로를 매개변수로 받아들이고 이미지를 나타내는 배열을 반환합니다.
# 加载图像 img = cv2.imread('image.jpg', 0)
3. 히스토그램 계산
이미지의 히스토그램을 계산하려면 cv2.calcHist() 함수를 사용합니다. 이 함수는 이미지 배열, 채널 인덱스, 마스크, 히스토그램 크기, 히스토그램 범위를 인수로 받아들이고 이미지의 히스토그램을 나타내는 배열을 반환합니다.
# 计算直方图 hist = cv2.calcHist([img],[0],None,[256],[0,256])
4. 원본 이미지와 히스토그램을 그립니다.
matplotlib 라이브러리의 plt.subplot() 함수를 사용하여 원본 이미지와 히스토그램을 각각 그립니다.
# 绘制原始图像和直方图 plt.subplot(121), plt.imshow(img, 'gray') plt.subplot(122), plt.plot(hist)
5. 히스토그램 평준화 수행
cv2.equalizeHist() 함수를 사용하여 이미지에 대한 히스토그램 평준화를 수행합니다. 이 함수는 이미지 배열을 매개변수로 받아들이고 히스토그램 평준화 후 이미지 배열을 반환합니다.
# 进行直方图均衡化 equ = cv2.equalizeHist(img)
6. 균등화된 이미지와 히스토그램 그리기
또한 plt.subplot() 함수를 사용하여 균등화된 이미지와 히스토그램을 각각 그립니다.
# 绘制均衡化后的图像和直方图 plt.subplot(121), plt.imshow(equ, 'gray') plt.subplot(122), plt.plot(hist)
7. 결과 표시
plt.show() 함수를 사용하여 그려진 모든 이미지를 표시하세요.
# 显示图像 plt.show()
8. 전체 코드 예제
import numpy as np import cv2 from matplotlib import pyplot as plt # 加载图像 img = cv2.imread('image.jpg', 0) # 计算直方图 hist = cv2.calcHist([img],[0],None,[256],[0,256]) # 绘制原始图像和直方图 plt.subplot(121), plt.imshow(img, 'gray') plt.subplot(122), plt.plot(hist) # 进行直方图均衡化 equ = cv2.equalizeHist(img) # 绘制均衡化后的图像和直方图 plt.subplot(121), plt.imshow(equ, 'gray') plt.subplot(122), plt.plot(hist) # 显示图像 plt.show()
결론:
Python의 OpenCV 라이브러리를 사용하면 이미지에 대한 히스토그램 평준화를 쉽게 수행할 수 있습니다. 히스토그램 균등화는 이미지의 대비를 강화하고 더 선명하고 생생하게 만들 수 있는 간단하고 효과적인 방법입니다. 이 글이 영상 처리에 관심이 있는 독자들에게 도움이 되기를 바랍니다.
위 내용은 Python을 사용하여 이미지에서 히스토그램 평준화를 수행하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!