直方图均衡化是一种用于增强图像对比度的图像处理技术。它通过调整图像的灰度级别分布,使得图像中各个灰度级别的像素分布更均匀,从而提高图像的对比度。
在OpenCV中,你可以使用cv2.equalizeHist()
函数来进行直方图均衡化。
以下是一个简单的示例:
import cv2
import matplotlib.pyplot as plt# 读取灰度图像
img = cv2.imread(r"C:\Users\mzd\Desktop\opencv\2.jpg", cv2.IMREAD_GRAYSCALE)# 进行直方图均衡化
equ = cv2.equalizeHist(img)# 绘制原始图像和均衡化后的图像
plt.figure(figsize=(8, 4))plt.subplot(1, 2, 1)
plt.imshow(img, cmap='gray')
plt.title('Original Image')plt.subplot(1, 2, 2)
plt.imshow(equ, cmap='gray')
plt.title('Equalized Image')plt.show()# 显示原始图像和均衡化后的图像
cv2.imshow('Original Image', img)
cv2.imshow('Equalized Image', equ)# 等待用户按下任意键
cv2.waitKey(0)
cv2.destroyAllWindows()
在这个示例中,我们首先读取了一幅灰度图像,然后使用 cv2.equalizeHist()
函数进行直方图均衡化。最后,我们使用 Matplotlib 绘制了原始图像和均衡化后的图像。
cv2.equalizeHist()
是 OpenCV 中用于进行直方图均衡化的函数。该函数的基本语法如下:
dst = cv2.equalizeHist(src)
参数说明:
src
: 输入图像,通常为灰度图像。
返回值:
dst
: 均衡化后的图像。
直方图均衡化可以在很大程度上提高图像的对比度,特别是当图像的灰度级别分布不均匀时。这在图像处理中经常用于改善图像的视觉效果。