《数字图像处理(第三版)》 第三章 数字图像处理 笔记3 (直方图处理 - 直方图均衡)

第 3 章 灰度变换与空间滤波

3.3 直方图处理

  直方图是多种空间域处理技术的基础。

  灰度级范围为 [0, L-1] 的数字图像的直方图是离散函数

h ( r k ) = n k h(r_k) = n_k h(rk)=nk

这里 rk 是第 k 级灰度,nk 是图像中灰度级为 rk 的像素个数。经常以图像中像素的总数(用 n 表示)来除它的每一个值得到归一化的直方图。因此,一个归一化的直方图由

P ( r k ) = n k n k = 0 , 1 , . . . , L − 1 P(r_k) = \frac{n_k}{n} \\ k = 0, 1, ... , L-1 P(rk)=nnkk=0,1,...,L1

即 P(rk) 给出了灰度级为 rk 发生的概率估计值。

在这里插入图片描述

可以看到,在暗色图像中,直方图的组成成分集中在灰度级低(暗)的一侧。类似的,明亮图像的直方图则倾向于灰度级高的一侧。

在这里插入图片描述

在上图中可以看到,低对比度图像的直方图窄而集中于灰度级的中部。高对比度的图像中,直方图的成分覆盖了灰度级很宽的范围,而且,像素的分布没有太不均匀,只有少量垂线比其他的高许多。

  可以得到如下结论:若一幅图像的像素倾向于占据整个可能的灰度级并且分布均匀,则该图像会有高对比度的外观并显示灰色调的较大变化。最终效果将是一幅灰度细节丰富且动态范围较大的图像


3.3.1 直方图均衡

  直方图均衡的目的:寻找 变换函数,该函数产生有均匀直方图的输出图像。也就是 得到一幅灰度级丰富且动态范围大的图像

  该函数仅仅依靠输入图像直方图中的信息就可自动达到这一效果。该函数产生有均匀直方图的输出图像。

  直方图均衡的关键:寻找变换函数,该函数产生有均匀直方图的输出图像。

  考虑连续灰度值,并用变量 r 表示待处理图像的灰度。假设 r 的取值范围为 [0, L-1],归一化之后得到 r 的取值范围为 [0, 1] 且 r=0 表示黑色,r=1 表示白色。对于任意一个满足上述条件的 r ,我们将注意力集中在变换形式上:

s = T ( r ) 0 ≤ r ≤ 1 s = T(r) \\ 0 \leq r \leq 1 s=T(r)0r1

对于输入图像中每个具有 r 值的像素产生一个输出灰度值 s。假设变换函数 T® 满足以下条件:

  • T( r ) 在区间 0 ≤ r ≤ 1 0 \leq r \leq 1 0r1 上为单调递增函数。
  • 0 ≤ r ≤ 1 0 \leq r \leq 1 0r1 时, 0 ≤ T ( r ) ≤ 1 0 \leq T(r) \leq 1 0T(r)1

  一幅图像的灰度级可被视为区间 [0, 1] 内的随机变量。随机变量的一个最重要的基本描述是其概率密度函数(PDF)。令 Pr( r ) 和 Ps( r ) 分别表示随机变量 r 和 s 的概率密度函数。

在这里插入图片描述

如上图所示,右下图是输入图像灰度级 r 的直方图或概率密度函数,现在的问题就是求函数 T,是结果图像的直方图为均匀分布,即得到左上和右上这种类型的输出图像灰度级。

  输入图像的灰度级 r 通过映射函数 T 映射到输出图像的灰度级 s,可得到如下关系式:

s 1 = T ( r 1 ) s 1 + Δ s = T ( r 1 + Δ r ) s_1 = T(r_1) \\ s_1 + \Delta s = T(r_1 + \Delta r) s1=T(r1)s1+Δs=T(r1+Δr)

又因为图中的曲线是输入输出图像中灰度级的概率密度的函数曲线,曲线的面积表示概率,故

∫ r 1 r 1 + Δ r P r ( r )   d r = ∫ s 1 s 1 + Δ s P s ( s )   d s \int_{r_1}^{r_1 + \Delta r} {P_r(r)} \,{\rm d}r = \int_{s_1}^{s_1 + \Delta s} {P_s(s)} \,{\rm d}s r1r1+ΔrPr(r)dr=s1s1+ΔsPs(s)ds

如果 Δ r \Delta r Δr 足够小,则:

P r ( r ) Δ r = P s ( s ) Δ s d s d r = P r ( r ) P s ( s ) P_r(r) \Delta r = P_s(s) \Delta s \\ \frac{ds}{dr} = \frac{P_r(r)}{P_s(s)} Pr(r)Δr=Ps(s)Δsdrds=Ps(s)Pr(r)

由此可以看到,输出灰度变量 s 的 PDF 就由输入灰度的 PDF 和所用变换函数决定。同时注意到: P s ( s ) P_s(s) Ps(s) 是均匀概率密度函数,故 P s ( s ) = 1 ,   0 ≤ s ≤ 1 P_s(s) = 1, \, 0 \leq s \leq 1 Ps(s)=1,0s1,故:

d T ( r ) d r = P r ( r ) ( s = T ( r ) ) s = T ( r ) = ∫ 0 r P r ( r )   d r \frac{dT(r)}{dr} = P_r(r) \qquad (s = T(r)) \\ s = T(r) = \int_0^r {P_r(r)} \, {\rm d}r drdT(r)=Pr(r)(s=T(r))s=T(r)=0rPr(r)dr

即通过上述式子得到的输出图像的灰度值 s 满足均匀分布,与输入图像灰度值 r 的概率密度函数 P r ( r ) P_r(r) Pr(r) 无关。

结论

  直方图均衡变换公式(未归一化):

s = T ( r ) = ( L − 1 ) ∫ 0 r P r ( w )   d w s = T(r) = (L-1) \int_0^r {P_r(w)} \, {\rm d}w s=T(r)=(L1)0rPr(w)dw

  

  

  以上介绍均为连续值情况下的变换。对于 离散值,我们处理其 概率与和 而不是 概率密度函数与积分。一幅图像中灰度级 rk 出现的概率近似为:

P r ( r k ) = n k n k = 0 , 1 , 2 , ⋯   , L − 1 P_r(r_k) = \frac{n_k}{n} \qquad k = 0, 1, 2, \cdots, L-1 Pr(rk)=nnkk=0,1,2,,L1

n 是图像的总像素,nk 是灰度为 rk 的像素个数,与 rk 相对的 Pr(rk) 图形通常称为 直方图,则直方图均衡公式为:

s k = T ( r k ) = ∑ j = 0 k P r ( r j ) = ∑ j = 0 k n j n s_k = T(r_k) = \sum_{j=0}^k {P_r(r_j)} = \sum_{j=0}^k \frac{n_j}{n} sk=T(rk)=j=0kPr(rj)=j=0knnj

需要注意的是:

  • 上式中的 rk 和 sk 都是归一化后的值。
  • 实际应用中,输入和输出的数字图像的灰度级分辨率应该是一致的。例如,如果对于一幅 256 个灰度级的数字图像进行直方图均衡,结果图像应该也是 256 个灰度级的。

例题
  已知一幅 64 × 64、3 bit 的数字图像,各灰度级出现的频数如下所示。试进行直方图均衡。

r01234567
n( r )790102385065632924512281

因为直方图均衡公式为:

s k = T ( r k ) = ∑ j = 0 k P r ( r j ) = ∑ j = 0 k n j n 0 ≤ r k ≤ 1   ,   k = 0 , 1 , 2 , ⋯   , L − 1 s_k = T(r_k) = \sum_{j=0}^k P_r(r_j) = \sum_{j=0}^k \frac{n_j}{n} \\ 0 \leq r_k \leq 1 \, , \, k = 0, 1, 2, \cdots, L-1 sk=T(rk)=j=0kPr(rj)=j=0knnj0rk1,k=0,1,2,,L1

因为像素的总数量是:

64 × 64 = 4096 64 × 64 = 4096 64×64=4096

个像素,则输入像素归一化并计算 Pr(rk) 得到如下表:

rknkPr(rk)sk
rk = 07900.19s0 = 0.19
rk = 1/710230.25s1 = 0.44
rk = 2/78500.21s2 = 0.65
rk = 3/76560.16s3 = 0.81
rk = 4/73290.08s4 = 0.89
rk = 5/72450.06s5 = 0.95
rk = 6/71220.03s6 = 0.98
rk = 1810.02s7 = 1.00

注意:原图像的灰度级为 8,即 [0, 7],则结果图像的灰度级也应该是 [0, 7]。所以需要把上表中的 sk 映射到 [0, 7] 的整数范围中去。可以采取四舍五入的方式取整,如下表所示:

rs = T( r )
0round(7 * 0.19) = 1
1round(7 * 0.44) = 3
2round(7 * 0.65) = 5
3round(7 * 0.81) = 6
4round(7 * 0.89) = 6
5round(7 * 0.95) = 7
6round(7 * 0.98) = 7
7round(7 * 1.00) = 7
rn( r )
00
1790
20
31023
40
5850
6985
7448

在这里插入图片描述

  如上图,第一幅图为原始图像的直方图,中间图像为变换函数,最右边图像为直方图均衡后的图像直方图。可以看到,在均衡后,直方图没有达到完全的均匀分布,这是因为数字图像的灰度级是离散的,所以才造成了这种情况。

  与连续形式不同,一般不能证明离散变换能产生均匀概率密度函数的离散值(均匀直方图)。

  直方图均衡化具有完全 “自动化” 的特点,即直方图均衡化不需要同以往的灰度变化那样选择变换函数的类型并设置参数,只需要输入图像的直方图即可。计算的简单性是直方图均衡化的一个优点。

在这里插入图片描述

左图显示了四幅图像,以及对这些图像中的每一个执行直方图均衡化之后的结果。前三种结果显示了重要改进效果。直方图均衡化在第四幅图像中没有在视觉上产生重要的不同,这是因为这幅图像的直方图已经扩展到了全部灰度级范围。

上图是这四幅图像的灰度级变换曲线,横坐标为原图中的灰度级,纵坐标为通过直方图均衡化得到的归一化的灰度级。可以看到,前三幅图像的原图像灰度级都集中在一个小的范围内,通过直方图均衡化后,灰度级映射到了整个灰度级范围,所以变换前后的图像进行对比可以看到显著的提升,而第四幅图像原图中的灰度级就分布在全部的灰度级范围,所以直方图均衡化前后对于图像的效果没有显著性的提升。

  • 4
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值