任务:图像均衡化使一幅图像的像素占有全部可能的灰度级,且分布均匀,对图像直方图均衡化进行数学原理的推导。
一、基础知识
使用的方法是灰度级变换:s = T(r)
基本思想是把原始图的直方图变换为均匀分布的形式,这样就增加了像素灰度值的动态范围,从而达到增强图像整体对比度的效果。
图1 未直方图均衡化的重邮(左)直方图均衡化后的重邮(右)
我们可以观察到直方图均衡化的图片对比度更加明显,亮的地方变暗了,暗的地方变亮了,这就是直方图均衡化的魅力。
首先我们了解什么是图像的直方图:
图像直方图的定义: 一个灰度级在范围[0,L-1]的数字图像的直方图是一个离散:
n 是图像的像素总数
nk 是图像中灰度级为 rk 的像素个数
rk 是第 k 个灰度级,k = 0,1,2,…,L-1
图2 未均衡化的重邮直方图(左)均衡化后的重邮直方图(右)
对应图1的重邮图片,我们可以观察到均衡化后的每个灰度等级,像素的个数分布更加均匀了,0代表暗,255代表亮,明显均衡化前偏亮,均衡化后整体更加协调平衡。
二、直方图均衡化的步骤
①依次扫描原始灰度图像的每一个像素,计算出图像的灰度直方图;
设f、g分别为原图像和处理后的图像, 求出原图f的灰度直方图,设为h。
图3 统计灰度图像的值以及概率函数
简单理解,f是原始图像的灰度值,h是灰度值的统计值,hs是灰度值的概率函数。
②计算灰度直方图的累积分布函数
图4 概率函数计算其累积分布函数
③根据累积分布函数和直方图均衡化原理得到输入与输出之间的映射关系。
④最后根据映射关系得到结果进行图像变换
图5 根据累计分布函数变化得到均衡化后的图像灰度
我们可以观察一下进行变前后的图像直方图,如图6所示。
图6 均衡化前的图像直方图(左)均衡化后的直方图(右)
可以观察到,直方图由原来的集中分布在0-8,均衡分布到各个灰度等级。至此我们就完成了直方图均衡化的所有步骤,总的步骤如下图所示。
图7 直方图均衡化的所有步骤示意图
但是我们怎么知道这个均衡化一定是“均衡”的呢?这就需要从数学的角度去推导整个过程,理解直方图均衡化的数学原理。
三、【图像直方图均衡化数学原理推导】
这里很建议去看冈雷萨斯的经典图像领域著作《数字图像处理》第三版,其中就有章节对图像直方图均衡化有详细的数学原理推导。我就是根据此加上自己的理解推导其数学原理,其中涉及到一些高等数学、概率论的知识。
用变量 r 表示待处理图像的灰度,假设 r 的取值区间为[0,L-1],r=0表示黑色,r=L-1表示白色,归一化后灰度级分布在0<r<l范围内。对[0,1]区间内的任一个r值进行如下变换有变换形式:
对于输入图像中每个具有 r 值的像素值产生一个输出灰度值 s,这个变化函数就是我们的直方图均衡化函数。
T(r)满足下列两个条件:(1)在区间0≤r≤1,有0≤s≤1。(2)在0≤r≤1
对于(1)式有对应的反函数:
这个反函数在之后推导有用。
r 的概率密度函数为 Pr(r), s 的概率密度函数为:
这个(3)式突然冒出来是怎么回事呢,这涉及到概率论的知识。在实际中,我们常对某些随机变量的函数更感兴趣.例如,在一些试验中,所关心的随机变量往往不能由直接测量得到,而它却是某个能直接测量的随机变量的函数,比如我们能测量圆轴截面的直径d,而关心的却是截面面积A—1。
这里对应我们的原图直方图随机变量r的概率密度函数P(r)是已知的,变化后的图像直方图随机变量s的概率密度函数P(s)是未知的,我们想要求得就是P(s),如果P(s) =1 就说明变化后的直方图是均匀的(概率相等)。
现在我们知道了随机变量r与s是有关系的,即公式(1),在概率论中根据已知概率密度函数求未知概率密度函数,且二者之间有关系,就是《概率论与数理统计》第二章第5节的知识,便可得到式(3)。
通过下图8的例子就可以很简单的理解式(3)的来源。
图8 公式(3)推导步骤示意图
假定变换函数为:
对上式(4)中的r求导有
把式(5)(2)带入(3)中,既有:
正如前文所述,如果P(s) =1 就说明变化后的直方图是均匀的(概率相等),通过公式的推导,我们证明得到P(s) = 1,图像均衡化成立。
参考博文
[1] https://blog.youkuaiyun.com/superjunenaruto/article/details/52431941
参考书籍
《数字图像处理》第三版 冈雷萨斯
2023.9.28
渝北仙桃数据谷