图像处理之直方图均衡化

出现原因:

最重要的灰度值变换是灰度值线性比例缩放,这是一种点处理,意味着变换后的灰度值仅仅依赖于原始图像同一位置的灰度值,y(i)=ax(i)+b 其中y为变换后i位置的灰度值,x为i位置原来的灰度值。为了适用不同的应用场景,对a和b的取值进行了限定,一般是归一化处理,将整个灰度值覆盖的地方达到最大一般是2八次方-1 即0-255。
但是如果图像中存在一个非常暗或者非常亮的区域的时候,灰度值归一化处理就无法得到想要的灰度值范围。
因此需要灰度直方图。

方法介绍:

这种方法通常用来增加许多图像的全局对比度,尤其是当图像的有用数据的对比度相当接近的时候。通过这种方法,亮度可以更好地在直方图上分布。这样就可以用于增强局部的对比度而不影响整体的对比度,直方图均衡化通过有效地扩展常用的亮度来实现这种功能。

这种方法对于背景和前景都太亮或者太暗的图像非常有用,这种方法尤其是可以带来X光图像中更好的骨骼结构显示以及曝光过度或者曝光不足照片中更好的细节。这种方法的一个主要优势是它是一个相当直观的技术并且是可逆操作,如果已知均衡化函数,那么就可以恢复原始的直方图,并且计算量也不大。这种方法的一个缺点是它对处理的数据不加选择,它可能会增加背景噪声的对比度并且降低有用信号的对比度。

实现过程

考虑一个离散的灰度图像 {x},让 ni 表示灰度 i 出现的次数,这样图像中灰度为 i 的像素的出现概率是
在这里插入图片描述
L 是图像中所有的灰度数(通常为256), n 是图像中所有的像素数, px(i) 实际上是像素值为 i 的图像的直方图,归一化到 [0,1]。
把对应于 px 的累积分布函数,定义为:
在这里插入图片描述
是图像的累计归一化直方图。

我们创建一个形式为 y = T(x) 的变换,对于原始图像中的每个值它就产生一个 y,这样 y 的累计概率函数就可以在所有值范围内进行线性化,转换公式定义为:
在这里插入图片描述
对于常数 K。CDF的性质允许我们做这样的变换(参见逆分布函数);定义为
在这里插入图片描述
其中 k 属于区间 [0,L)。注意 T 将不同的等级映射到0…1 域,为了将这些值映射回它们最初的域,需要在结果上应用下面的简单变换:
在这里插入图片描述
上面描述了灰度图像上使用直方图均衡化的方法,但是通过将这种方法分别用于图像RGB颜色值的红色、绿色和蓝色分量,从而也可以对彩色图像进行处理。

举例子直观说明

这个例子是一个8位的8×8灰度图像:
图像处理之直方图均衡化_第1张图片
图像处理之直方图均衡化_第2张图片
累积分布函数(cdf)如下所示,与上一表格类似,为了简化,累积分布函数值为0的灰度值已经被省略
图像处理之直方图均衡化_第3张图片
如表格所示,灰度值最小值为52,最大值为154. 通常,直方图均衡化算式如下:
在这里插入图片描述
累积分布函数最小值cdfmin在本例中为1, M和N分别代表了图像的长宽像素个数(本例中为8×8=64),而L则是灰度级数(如本例中,图像为8位深度,则灰度级数共有2^8=256级数,这也是最常见的灰度级数).则对于本例的直方图均衡化算式为:

{\displaystyle h(v)=\mathrm {round} \left({\frac {cdf(v)-1}{63}}\times 255\right)}
例如,灰度为78的像素的累积分布函数为46,均衡化后,灰度值变化为:
在这里插入图片描述
直方图均衡化后,图像的灰度值变化如下表所示:
图像处理之直方图均衡化_第4张图片
注意:原最小灰度值52变为了0,而最大灰度值154变为了255
图像处理之直方图均衡化_第5张图片图像处理之直方图均衡化_第6张图片
图像处理之直方图均衡化_第7张图片
整理自维基百科

你可能感兴趣的:(图像处理)