直方图均衡化是图像处理领域中利用图像直方图对对比度进行调整的方法。
这种方法通常用来增加许多图像的全局对比度,尤其是当图像的有用数据的对比度相当接近的时候。通过这种方法,亮度可以更好地在直方图上分布。这样就可以用于增强局部的对比度而不影响整体的对比度,直方图均衡化通过有效地扩展常用的亮度来实现这种功能。
这种方法对于背景和前景都太亮或者太暗的图像非常有用,这种方法尤其是可以带来X光图像中更好的骨骼结构显示以及曝光过度或者曝光不足照片中更好的细节。这种方法的一个主要优势是它是一个相当直观的技术并且是可逆操作,如果已知均衡化函数,那么就可以恢复原始的直方图,并且计算量也不大。这种方法的一个缺点是它对处理的数据不加选择,它可能会增加背景噪声的对比度并且降低有用信号的对比度。
实际上,对彩色分量rgb分别做均衡化,会产生奇异的点,图像不和谐。一般采用的是用HSL和HSV色彩空间进行亮度的均衡即可。
下面的这个例子是一个8位的8×8灰度图像:
该灰度图像的灰度值出现次数如下表所示,为了简化表格,出现次数为0的值已经被省略:
如表格所示,灰度值最小值为52,最大值为154. 通常,直方图均衡化算式如下:
累积分布函数最小值cdfmin在本例中为1, M和N分别代表了图像的长宽像素个数(本例中为8×8=64),而L则是灰度级数
(如本例中,图像为8位深度,则灰度级数共有2^8=256级数,这也是最常见的灰度级数).则对于本例的直方图均衡化算式为:
例如,灰度为78的像素的累积分布函数为46,均衡化后,灰度值变化为:
直方图均衡化后,图像的灰度值变化如下表所示:
注意:原最小灰度值52变为了0,而最大灰度值154变为了255:
全尺寸图像:
相应的直方图(红)和累积直方图(黑)
相应的直方图(红)和累积直方图(黑)