您的位置:首页 > 其它

直方图均衡化(Histogram equalization)

2016-01-19 17:11 218 查看

综述

直方图均衡化Histogram equalization)常用于增强图片的整体对比度,特别对于那些有用的数据被相似数据所代表的情况。通过直方图均衡化将亮度更好的分布于直方图上,使得低对比度区域有了更高的对比度。该方法对于前景和背景都很暗或都很亮的情况有很好的调节效果。

实现

假设有一个离散的灰度图像{x},对该图像进行直方图均衡化的具体步骤如下:

原图灰度级概率统计

ni代表灰度级i出现的次数,Imin,Imax分别代表图像中最小,最大的灰度级别,L是均衡化后的灰度级数,那么灰度级i在该图片中出现的概率Px(i)可表示如下:

Px(i)=P(x=i)=nni,0≤i<L

该过程相当于将图像的直方图归一化到[0,1],所以最终的到的直方图也是归一化到[0,1]。

由累计直方图得到均衡化直方图

根据下式计算累计直方图:

cdfx(i)=∑j=0iPx(j)

将cdfx的灰度级范围从[Imin,Imax]归一化到[0,L−1],就得到了目标输出{y}的累计直方图cdfy,由cdfy就可以得到{y}的直方图,该直方图就是均衡化的。

以上叙述都是基于灰度图的,该算法也可以应用于彩色图像,只需要分别处理R、G、B三个通道即可。然而,色彩通道的关系会因为该算法的应用而改变,从而产生戏剧性的变化。

实例

对于如下图所示的size=8×8的8位灰度图片进行直方图均衡化处理。



该图片的灰度值如下表所示:



首先,计算该图像的直方图,结果如下:



然后,根据直方图计算原始图像中小于等于每个灰度级的像素的个数(即将累计直方图中的值乘以图片大小:cdfx(i)×size,这样求得的均衡化直方图就不是归一化到[0,1],而是标准的直方图),结果如下:

原始灰度级icdfx(i)×size
521
554
586
599
6010
15464
根据以下规则将cdfx的灰度级范围从[Imin,Imax]归一化到[0,255],即L=256:

h(i)=round(cdfx(i)×size−min(cdfx(i)×size)size−min(cdfx(i)×size)×(L−1))

以原始灰度级55为例,均衡化后的灰度级h为:h(55)=4−164−1×(256−1)≈12,由于灰度级为整数,所以将求得的值四舍五入(round),同理可求得均衡化后对应的所有灰度级:

原始灰度级icdfx(i)×size均衡化后灰度级h
5210
55412
58620
59932
601036
15464255
原始图像直方图与均衡化直方图对比:





原始图片与均衡化处理后的图片对比:





结束语

直方图均衡化只能解决整体曝光不足或曝光过度的问题,而对于实际应用中经常出现的光照不均匀问题处理效果不明显。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: