📅  最后修改于: 2023-12-03 15:33:17.982000             🧑  作者: Mango
OpenCV是一款面向计算机视觉编程的开源库,其中包含了丰富的图像处理、分析等模块,其中直方图均衡化是常用图像增强方法之一。
直方图均衡化是通过对图像像素值进行重新分配,从而增强图像对比度和亮度。其具体实现原理如下:
OpenCV中提供了直方图均衡化的API,其函数原型如下:
void equalizeHist(InputArray src, OutputArray dst);
其中,InputArray类型的参数src表示输入图像,OutputArray类型的参数dst表示输出图像。下面是代码示例:
import cv2
import matplotlib.pyplot as plt
img = cv2.imread('input_image.jpg', 0)
# 直方图均衡化
equ = cv2.equalizeHist(img)
# 显示原始图像和均衡化后的图像
plt.subplot(121)
plt.imshow(img, cmap='gray')
plt.title('Original Image')
plt.xticks([]), plt.yticks([])
plt.subplot(122)
plt.imshow(equ, cmap='gray')
plt.title('Equalized Image')
plt.xticks([]), plt.yticks([])
plt.show()
代码解释:
原始图像:
均衡化后的图像:
可以看出,直方图均衡化可以有效地提高图像的对比度和亮度,使图像更具有清晰度和明亮度。