——————————————————————————————————————————————
有梦想,那就去坚持去做,坚持去完成第一个10000万小时!
——————————————————————————————————————————————
一.什么是直方图
简单的说灰度直方图就是:一幅图像中灰度级与出现这种灰度的概率之间关系的图形,灰度直方图是一种统计表达,反映了不同灰度级出现的统计概率(个数),其横坐标是:灰度级,纵坐标是:出现的个数(概率)。
(1)直方图的离散函数 h(rk)=nk。其中rk是第K级的灰度值,nk是图像中灰度为rk的像素的个数。
(2)归一化直方图 p(rk)=nk/MN。其中k = 0,1,2.....L-1(灰度级的范围是[ 0 , L-1]),MN表示像素的总的个数。
2.直方图修正的应用
直方图的修正是以概率论为基础,常用的方法有:直方图均衡化、直方图匹配(规定化)、局部直方图处理。
3.直方图均衡化的背景
在图像处理的过程中,我们注意到:
(1)在暗的图像中,直方图的灰度量集中在灰度级比较低(灰度值比较小)的那一端。如图 a 所示。
(2)在亮的图像中,直方图的灰度量集中在灰度级比较高(灰度值比较大)的那一端。如图 b 所示。
(3)在低对比度的图像中,直方图的灰度量具有较窄的范围,并且集中在灰度级的中部,如图 c 所示。
(4) 在高对比度的图像中,直方图的灰度量具有较宽的范围,并且像素分布比较均匀,如图 d 所示。
图a
图b
图c
图d
如果一幅图像的像素倾向于占据整个可能的灰度级并且分布均匀,则该图像有较高的对比度,并展示色调的变化很大。最终的效果就是一幅灰度细节丰富且动态范围较宽的图像。我们需要仅仅依靠输入图像的直方图的可用信息开发出 一个变换函数来自动的实现这种效果。由此我们引出了直方图的均衡化。
二.直方图均衡化
基本思想:把原图像变换为在整个灰度范围内均匀分布的形式。
目的:寻找一个变换函数实现输出图像的灰度值能够在整个范围内均匀分布。
考虑连续的灰度值,用变量 r 表示输入图像的灰度,用 s 表示输出图像的灰度。r 范围是 [ 0, L-1],则函数:
s = T(r), r 的范围:[0 , L-1]
T(r) 满足的条件:
(1)T(r) 在区间[0 , L-1] 严格单调递增函数。
这个条件保证了输入图像灰度值高的地方,输出图像的灰度值也高,不会对原图像的性质反生改变。
(2)当 r 的范围:[0 , L-1] 时,T(r) 也在[0 , L-1]内。
这个条件保证原图像和新图像的灰度值范围一致。
我们需要引入,
。这种情况下,T(r)在区间
是一个严格单调函数。
在图像处理中,特别重要的变换函数如下形式:
这个函数遵循条件1和条件2。
一幅图像看做是区间 [0,L-1] 的随机变量。看做随机变量 r 和 s 的概率密度函数。
由概率论定理知:
得到图像变换后的 s 的PDF
对变换函数两边对 r 求导数
把 ds/dr 结果带入变量 s 的PDF函数,得到
得到ps(s)是一个均匀的概率密度函数,与pr(r)无关。
(2)离散变换
这样,输出的图像通过 T( rk )将输入的灰度级 rk ,映射到输出图像中灰度级为 sk对应的像素得到。
例子:
输出图形的灰度是sk(K=0,1.2,....7)。
s 值一直是分数,因此我们要近似为整数:
s0 = 1.33≈1 ;s1 =3.08≈3 ;s2= 4.05≈4 ;s3 = 5.67≈6 ;s4 =6.23≈6 ;s5 = 6.66≈7;s6= 6.86≈7 ;s7 = 7.00≈7 ;
均衡后得到新的灰度值sk与像素点个数。
三.直方图匹配(规定化)
直方图的均衡化是自动挡额确定变换函数,该函数寻求产生有均匀直方图的输出图像。有时候,我们希望处理后的图像具有规定的直方图形状,这种用于产生处理后的有特殊直方图的方法称为直方图匹配或者直方图规定化。
令 s 为一个有如下特性的随机变量:
接着我们假设有如下性质的 z 变量
由这两个等式可得 G(z) = T(r),因此,z 满足
直方图的规定化在原理上是简单的,但是实践中,共同的困难就是寻找 T(r) 和 G反函数有意义的表达式。幸运的是,在处理离散量时,问题可以大大的简化。
离散形式直方图规定化过程
(1)由给定图像的直方图pr(r),并寻找直方图的均衡变换。并把 sk 四舍五入到范围 [0, L-1]内的整数。
(2)根据,求得变换函数 G 的值,其中pz(zi)是规定的直方图的值。把G 的值四舍五入到范围 [0, L-1]内的整数。
(3)对于每一个值Sk,使用②存储的值寻找相应的Zq值,使G(Zq)最接近Sk,并存储这些从S到Z的映射。
例题