首页 > 代码库 > 我理解的直方图均衡化

我理解的直方图均衡化

关于直方图的比较官方的解释版本,建议先看看这个,挺有用,看了好几次我就明白了: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,这一个点上,缩小了。

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

技术分享

我理解的直方图均衡化