我理解的直方图均衡化

Posted 和优秀的人一起成长

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我理解的直方图均衡化相关的知识,希望对你有一定的参考价值。

关于直方图的比较官方的解释版本,建议先看看这个,挺有用,看了好几次我就明白了:http://baike.baidu.com/item/%E7%9B%B4%E6%96%B9%E5%9B%BE%E5%9D%87%E8%A1%A1%E5%8C%96

下面是我通俗的解释:

如下图,是一个直方图,横坐标是0~255的灰度值,纵坐标是相应灰度值在图片中的概率:

我们来个更极端的,假如说,图片的的灰度值都集中在第三个和第四个峰值,(纵坐标数值是不对的,这里只是示意,忽略具体数值)如下图:

那么就有这么一个上图的累积分布函数F,如下草图所示:

均衡化就是让某灰度值数量少的点数量变得更少,让某灰度值数量多的点数量变得更多,用纵坐标s*255代替横坐标r,对图像所有的点都进行这样的操作,比如说图像中的某一个像素值是40 ,就会变成0.1*255,像素值是80,就会变成0.8*255,像素值是160,就会变成0.12*255,等等,对每一个点都用s*255代替r。

所以:

(1)0~80的灰度值的r,都会变成0.1*255,这些点少,0~80的灰度值都会变成0.1*255,相应原来图片中的点像素值在0~80的,都会变成0.1*255,缩小了。

(2)81~160的灰度值都会相应变化,由于数值多,所以乘以255后,映射的灰度值范围就越广,扩大了。

(3)161~255的灰度值的点少,相应点的灰度值就会映射到0.12*255,这一个点上,缩小了。

我哪里有讲的不对的地方,还请大家指正发起进攻(  ´-ω ・)▄︻┻┳══━一

以上是关于我理解的直方图均衡化的主要内容,如果未能解决你的问题,请参考以下文章

使用 cv::equalizeHist() 的 OpenCV 直方图均衡过程:需要帮助理解最后一步

OpenCV自适应直方图均衡CLAHE的clipLimit的含义及理解

《OpenCV:直方图应用:直方图均衡化,直方图匹配,对比直方图》

C++ OpenCV直方图均衡化

直方图均衡化

OpenCV自适应直方图均衡CLAHE的裁剪处理过程