数字图像处理笔记(二)图像增强-直方图修改技术


前言:本篇笔记,在于了解图像增强的直方图修改技术有哪些方法以及设计到的数学原理。
参考:阮秋琦 第3版《数字图像处理学》、黄琳琳 图像处理与机器学习视频
感想:用到了很多概率论和高等数学的知识。

图像增强介绍

为什么需要图像增强?:图像有时候会出现视觉效果不佳、噪声污染、难以分析等问题。

图像增强:用来突出图像中感兴趣的信息,而减弱或者去除不必要的信息,使其更便于人眼观察或者机器分析。

图像增强的方法:空域法(点处理、邻域处理)、频域法。
直方图修改技术和灰度变换都属于空域法的点处理。

灰度变换

灰度变换:输入图像像素的灰度级进行变换。
s = T ( r ) ( r 输入灰度级, s 输出灰度级, T 灰度变换函数 ) s=T(r)\quad(r输入灰度级,s输出灰度级,T灰度变换函数) s=T(r)(r输入灰度级,s输出灰度级,T灰度变换函数)

灰度变换函数:

  • 线性变换(s=Ar+B):有分段和不分段,分段线性变换,对感兴趣部分灰度拉伸,对不感兴趣的部分灰度压缩。
  • 非线性变换:对数变换、幂次变换、直方图均衡等。

直方图

灰度级的直方图,反应一幅图像中灰度级和出现这种灰度级概率之间的关系。

像素的灰度级用变量r来表示,可以归一化处理:0<=r<=1。
r=0表示黑,r=1表示白。

用概率密度函数pr( r )表示灰度分布。
在这里插入图片描述
为利于数字图像处理,引入离散形式,用rk表示离散灰度级,并用Pr( r )代替pr( r )。
P r ( r k ) = n k n ( 0 ≤ r k ≤ 1 ) k = 0 , 1 , 2 , . . . , l − 1 P_r(r_k)=\frac{n_k}{n}\quad(0\leq r_k\leq1)\quad k=0,1,2,...,l-1 Pr(rk)=nnk(0rk1)k=0,1,2,...,l1
上图中,nk表示为rk灰度级出现的像素个数,n为总像素个数。
在这里插入图片描述

直方图修改技术的基础

直方图修改实际上是对r值做变换:s=T( r )。

变换函数T( r )的要求:

  • 在0<=r<=1区间内,T( r )单调递增。保证图像灰度级从白到黑的次序不变。
  • 对于0<=r<=1,都有0<=T( r )<=1。保证映射之后的像素灰度不超过范围。

主要搞清楚灰度变换前后的直方图有什么关系?:变换只是针对像素上的灰度级进行变换,变换前和变换后的部分像素个数还是相等的,例如对区间[0.5,0.9]灰度级r进行变换函数到[0.1,0.3]灰度级s上,这两个灰度级区间所拥有的像素个数是不变的。其实就是概率论里面的随机变量函数的分布的特点。
P ( μ ≤ s ) = P [ ξ ≤ r ] = ∫ − ∞ r p r ( x )   d x P(\mu\leq s)=P[\xi\leq r]=\int_{-\infty}^r {p_r(x)} \,{\rm dx} P(μs)=P[ξr]=rpr(x)dx
通过分布函数求导可以求出概率密度函数。
p s ( s ) = p r ( r ) × d r d s ( r = T − 1 ( s ) ) p_s(s)=p_r(r)\times\frac{dr}{ds}\quad (r=T^{-1}(s)) ps(s)=pr(r)×dsdr(r=T1(s))

直方图均衡化处理(直方图线性化处理)

为什么需要直方图均衡化处理?:从直方图可以看出像素的灰度级分布,如果大多数像素集中在较暗的区域,会使得图像看起来过暗;反过来,如果大多数像素集中在较亮的区域,会使得图像看起来过亮。可以通过直方图均匀化,让每个灰度级上分布的像素更加均匀,使得图像的细节看起来更加丰富。

接下来会进行直方图均衡化处理的变换函数的推导

直方图均衡化之后,应该是一个均匀分布,在区间[0,1]上服从均匀分布的概率密度取值为1(1/区间长度)。
p s ( s ) = p r ( r ) × d r d s = 1 p_s(s)=p_r(r)\times\frac{dr}{ds}=1 ps(s)=pr(r)×dsdr=1
可以得出
d r d s = 1 d s d r = 1 p r ( r ) \frac{dr}{ds}=\frac1{\frac{ds}{dr}}=\frac1{p_r(r)} dsdr=drds1=pr(r)1
d s d r = p r ( r ) \frac{ds}{dr}=p_r(r) drds=pr(r)
也就意味着
s = T ( r ) = ∫ 0 r p r ( x )   d x s=T(r)=\int_0^r {p_r(x)} \,{\rm dx} s=T(r)=0rpr(x)dx
这样一旦知道了pr函数,就可以通过变上限积分求解出T( r )。

以上都是基于连续性随机变量进行讨论的,但对于数字图像,需要引入离散形式的公式
s k = T ( r k ) = ∑ j = 0 k n j n = ∑ j = 0 k P r ( r j ) s_k=T(r_k)=\sum_{j=0}^{k}{\frac{n_j}{n}}=\sum_{j=0}^{k}{P_r(r_j)} sk=T(rk)=j=0knnj=j=0kPr(rj)
需要掌握rk通过离散形式变换得到sk的过程,从而理解到直方图均衡化的缺陷。
直方图均衡化处理步骤:
1)先求出不同rk对应的Pr( rk )(Pr计算在前面直方图部分就有)。
2)通过累积分布函数(上述公式)做变换得到sk
3)得到的sk需要选择最靠近的一个灰度级,作为新的灰度级。例如sk=0.19,原先的灰度级有0、1/3、2/3、1,这时候最近的灰度级是1/3。

直方图均衡化的缺陷:简并现象。
简并现象:第三步用新灰度级替代旧灰度级的时候,会导致变换后灰度等级总数减少。简并会导致出现伪轮廓(False Contour),画面本该平坦的区域出现了类似于等高线一样不连续的过渡带。
原因:累积分布函数得到sk往往是不允许的灰度值,用最接近的灰度来替代它时,一些相邻的sk会变成相同灰度级。
如何减少:
1)增加像素的比特数,也就是增加像素深度,让能表示的灰度层级更多,来减少多个相邻的sk并入到同一个深度级。
2)灰度间隔放大理论(保留疑问,书上看的不是很懂,等理解后再补充???)。

直方图规定化处理

直方图规定化处理:修改一幅图像直方图,使得它接近和规定结果图像的直方图。

其中原始图像的概率密度函数是Pr( r ),而希望得到的图像概率密度函数是Pz( z )。

关键在于如何建立Pr( r )和Pz( z )之间的联系
1)对两幅图像都进行直方图均衡化。
s = T ( r ) = ∫ 0 r p r ( x )   d x v = G ( z ) = ∫ 0 z p z ( x )   d x s=T(r)=\int_0^r {p_r(x)} \,{\rm dx}\quad\quad v=G(z)=\int_0^z {p_z(x)} \,{\rm dx} s=T(r)=0rpr(x)dxv=G(z)=0zpz(x)dx
2)两幅图像只是灰度分布概率密度不同,但是像素个数是相同的。由于两幅图像都做了均衡化处理,所以当s=v时
s = v = ∫ 0 r p r ( x )   d x = ∫ 0 z p z ( x )   d x s=v=\int_0^r {p_r(x)} \,{\rm dx}=\int_0^z {p_z(x)} \,{\rm dx} s=v=0rpr(x)dx=0zpz(x)dx
则推出
∫ s s + Δ s 1   d x = ∫ r r + Δ r p r ( x )   d x = ∫ z z + Δ z p z ( x )   d x \int_s^{s+\Delta{s}}1 \,{\rm dx}=\int_r^{r+\Delta{r}} {p_r(x)} \,{\rm dx}=\int_z^{z+\Delta{z}} {p_z(x)} \,{\rm dx} ss+Δs1dx=rr+Δrpr(x)dx=zz+Δzpz(x)dx
就是在 Δ s , Δ r , Δ z \Delta{s},\Delta{r},\Delta{z} Δs,Δr,Δz这段灰度区间像素个数相等,也就是像素个数没变灰度变了。
3)这个时候就可以得出r和z的映射关系了,
z = G − 1 ( v ) = G − 1 ( s ) = G − 1 [ T ( r ) ] z=G^{-1}(v)=G^{-1}(s)=G^{-1}[T(r)] z=G1(v)=G1(s)=G1[T(r)]
也就是 z = G − 1 [ T ( r ) ] z=G^{-1}[T(r)] z=G1[T(r)]

如何处理映射关系中的反函数?
虽然映射关系中要求反函数的解析式,这个在连续随机变量中是很困难的,但是由于数字图像处理是离散变量,所以可以用近似来绕过。
也就是可以通过 v = G ( z ) , s = T ( r ) v=G(z),s=T(r) v=G(z),s=T(r)求出不同v和s配对的z和r,然后通过判断 v ≈ s v \approx s vs来吧配对的z和r关联起来就好了。

图像对比度处理

利用灰度变换和直方图修正可以对图像对比度进行处理。直方图均衡化处理可以改善图像灰度的动态范围;直方图规定化可以得到更加符合需求的结果;正确的灰度变换函数设计可以灵活改善图像。

几种常用的对比度处理的灰度变换函数:
1)对比度增强:线性递增的灰度变换函数,把输入灰度区间映射到整个灰度输出范围。
在这里插入图片描述
2)灰度反转:线性递减的灰度变换函数。
在这里插入图片描述
3)开窗式/灰度窗口变换:将某一个区间的灰度级和其它部分区分开来。
在这里插入图片描述
4)锯齿形变换:通过把几段较窄的输入灰度区间映射到整个灰度输出范围,把变换较为平缓的部分更清晰的显示出来。
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值