直方圖均衡化是一種簡單有效的圖像增強技術,將圖像的直方圖分布變成近似均勻分布,從而增強圖像的對比度,使色彩細節更豐富,多用於車牌識別、人臉識別場景(在論文里面數據預處理用的很多)
import cv2
import matplotlib.pyplot as plt
img = cv2.imread(r"image\lenacolor.png", cv2.IMREAD_GRAYSCALE)
# 設置rc參數顯示中文標題,設置字體為SimHei顯示中文
plt.rcParams['font.sans-serif'] = 'SimHei'
plt.rcParams['axes.unicode_minus'] = False
# 繪制灰度直方圖
# ravel()函數,將二維的圖像,轉化為一維的數組
plt.hist(img.ravel(), 256)
plt.xlabel("灰度級")
plt.ylabel("像素個數")
plt.title("灰度直方圖")
# 繪制均衡直方圖
# plt.figure()函數,創建自定義圖像
plt.figure()
equ = cv2.equalizeHist(img)
plt.hist(equ.ravel(), 256)
plt.xlabel("灰度級")
plt.ylabel("像素個數")
plt.title("均衡直方圖")
# 3.顯示灰度直方圖
plt.show()
cv2.imshow("original", img)
cv2.imshow("result", equ)
cv2.waitKey(0)
cv2.destroyAllWindows()