直方图均衡化的概念和特点:
图像的像素灰度变化是随机的,直方图的图形高低不齐,直方图均衡化就是用一定的算法使直方图大致平和的方法。
说简单一点,直方图均衡化是通过拉伸像素强度分布范围来增强图像对比度的一种方法。
注意:
在原图像对比度本来就很高的情况下,如果再均衡化则会使灰度调和,对比度会降低。在泛白缓和的图像中,均衡化会合并一些像素灰度,从而增大对比度。均衡化后的图片如果再对其均衡化,则图像不会有任何变化。
由equalizeHist函数实现的灰度直方图均衡化算法,就是把直方图每个灰度级进行归一化处理,求每种灰度的累积分布,得到一个映射的灰度映射表,然后根据相应的灰度值来修正原图中的每个像素。
#include<opencv2/core.hpp>
#include<opencv2/highgui.hpp>
#include<opencv2/imgproc.hpp>
#include<iostream>
using namespace cv;
using namespace std;
int main()
{
Mat src=imread("/home/zdg/图片/铅笔.jpg");
Mat src_gray,dst,abs_x;
imshow("原图",src);
//图像预处理
cvtColor(src,src_gray,COLOR_RGB2GRAY);
GaussianBlur(src_gray,dst,Size(5,5),10,10);
equalizeHist(dst,dst);//直方图均衡化
imshow("效果图",dst);
waitKey(0);
return 0;
}