0016-在OpenCV环境下进行图像的直方图均衡化

对于一些过度曝光的图像,实质上是图像的亮度值分布集中在某一个区域,导致图像的对比度过低。为了解决这个问题,引出了直方图均衡化这个技术,将亮度值分布很集中的直方图的亮度范围拉大至整一个亮度区域(如8位灰度图就是到0-255)。
OpenCV提供了equalizeHist这个函数来进行灰度图像的直方图均衡化,使用方法很简单,这里就不专门介绍这个函数了,直接上源代码吧,至于实现的原理,大家可以参考相关文献。
代码中用到的图像下载链接:http://pan.baidu.com/s/1nuZsmbZ 密码:npom

图像处理开发资料、图像处理开发需求、图像处理接私活挣零花钱,可以搜索公众号"qxsf321",并关注!

//opencv版本:OpenCV3.0
//VS版本:VS2013
//Author:qxsf321.net

#include 
#include     
#include 
#include 
#include 

#include 

using namespace cv;
using namespace std;

int main()  
{  
    Mat srcImage = imread("20.jpg");  
    imshow("【原图】", srcImage);  

    Mat grayImage;  
    cvtColor(srcImage, grayImage, CV_BGR2GRAY);  
    imshow("【灰度图】", grayImage);  

    Mat dstImage;  
    //直方图均衡化  
    equalizeHist(grayImage, dstImage);  
    imshow("【均衡化后的灰度图】", dstImage);  


    waitKey(0);  

    return 0;  
}


代码非常简单,这里就不多做赘述了!
运行结果截图如下

0016-在OpenCV环境下进行图像的直方图均衡化_第1张图片
 

你可能感兴趣的:(0016-在OpenCV环境下进行图像的直方图均衡化)