直方图均衡化
直方图均衡化是一种简单有效的图像增强技术,将图像的直方图分布变成近似均匀分布,从而增强图像的对比度,使色彩细节更丰富,多用于车牌识别、人脸识别场景(在论文里面数据预处理用的很多)
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()