图像增强的点运算

182 阅读8分钟

“开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 4 天,点击查看活动详情

在图像处理中,点运算是一种简单而又很重要的技术。对于一幅输入图像,经过点运算将产生一幅输出图像,后者的每个像素的灰度值仅由相应输入像素的值决定。对比度增强、对比度拉伸或灰度变换都属于点运算。它是图像数字化软件和图像显示软件的重要组成部分。

灰度级校正

在成像过程中,扫描系统、光电转换系统中的很多因素,如光照强弱、感光部件灵敏度、光学系统不均匀性,元器件特性不稳定等均可造成图像亮度分布的不均匀,导致某些部分亮,某些部分暗。灰度级校正就是在图像采集系统中对图像像素进行修正,使整幅图像成像均匀。

令理想输入系统输出的图像为f(i,j)f(i,j),实际获得的降质图像为g(i,j)g(i,j),则有:

g(i,j)=e(i,j)f(i,j)g(i,j)=e(i,j)f(i,j)

e(i,j)e(i,j)为降质函数或观测系统的灰度失真系数。显然只要知道了e(i,j)e(i,j),就可求出不失真图像f(i,j)f(i,j)

标定系统失真系数的方法之﹒是采用一幅灰度级为常数C的图像成像,若经成像系统的实际输出为gc(i,j)g_c(i,j),则有:

gc(i,j)=e(i,j)Cg_{c}(i, j)=e(i, j) C

从而可得降质函数:

e(i,j)=gc(i,j)C1e(i, j)=g_{c}(i, j) C^{-1}

从而就可得降质图像g(i,j)g(i,j)经校正后所恢复的原始图像f(i,j)f(i,j)

f(i,j)=Cg(i,j)gc(i,j)f(i, j)=C \frac{g(i, j)}{g_{c}(i, j)}

值得注意的是经灰度级校正后的图像为连续图像,由于乘了一个系数C/gc(i,j)C / g_c(i,j),所以校正后的f(i,j)f(i, j)有可能出现“溢出”现象,即灰度级值可能超过某些记录器件或显示器的灰度输入许可范围,因此需再作适当修正。最后对修正后的图像进行量化。

灰度变换

灰度变换可使图像的动态范围增大、图像对比度拓展,图像变清晰,特征明显,是图像增强的重要手段之一。

线性变换

令原图像f(i,j)f(i,j)的灰度范围为[a,b][a,b],线性变换后图像g(i,j)g(i,j)的范围为[c,d][c,d]

其中g(i,j)g(i,j)f(i,j)f(i,j)之间的关系式为

g(i,j)=c+dcba(f(i,j)a)g(i,j)=c+\frac{d-c}{b-a}(f(i,j)-a)

在曝光不足或过度的情况下,图像灰度可能会局限在一个很小的范围内。这时在显示器上看到的将是变换对图像每一个像素作线性拉伸,将有效地改善图像视觉效果。

分段线性变换

为了突出感兴趣的目标或灰度区间,相对抑制那些不感兴趣的 灰度区间,可采用分段线性变换。常用的是三段线性变换,如图。对应的数学表达式为:

图中对灰度区间[a,b][a,b]进行了线性拉伸,而灰度区间[0,a][b,Mf][0,a]和[b,M_f]则被压缩。通过细心调整折线拐点的位置及控制分段直线的斜率,可对任一灰度区间进行拉伸或压缩。

非线性灰度变换

当用某些非线性函数如对数函数、指数函数作为映射函数时,可实现图像灰度的非线性变换。

对数变换

对数变换的一般表达式为:

g(i,j)=a+ln[f(i,j)+1]blncg(i, j)=a+\frac{\ln [f(i, j)+1]}{b \cdot \ln c}

这里a,b,c是为了调整曲线的位置和形状而引入的参数。当希望对图像的低灰度区较大的拉伸而对高灰度区压缩时,可采用这种变换,它能使图像灰度分布与人的视觉特性相匹配。

指数变换

指数变换的一般表达式为:

g(i,j)=bc[f(i,j)a]1g(i, j)=b^{c[f(i, j)-a]}-1

这里参数a,b,c用来调整曲线的位置和形状。这种变换能对图像的高灰度区给予较大的拉伸。

直方图修正法

灰度直方图反映了数字图像中每一灰度级与其出现频率间的关系,它能描述该图像的概貌。通过修改直方图的方法增强图像是一种实用而有效的处理技术。大多数自然图像由于其灰度分布集中在较窄的区间,导致图像细节不够清晰。采用直方图修整后可使图像的灰度间距拉开或使灰度分布均匀,从而增大反差,使图像细节清晰,达到增强图像的目的。

直方图修整法包括直方图均衡化直方图规定化两类。

直方图均衡化

直方图均衡化是将原图像通过某种变换,得到一幅灰度直方图为均匀分布的新图像的方法。

下面先讨论连续变化图像的均衡化问题,然后推广到离散的数字图像上。

设r和s分别表示归一化了的原图像灰度和经直方图修正后的图像灰度。即:

0<=r,s<=10<=r,s<=1

[0,1][0,1]区间内的任一个r值,都可产生一个s值,且

s=T(r)s=T(r)

T(r)作为变换函数,满足下列条件:

①在0≤r≤1内为单调递增函数,保证灰度级从黑到白的次序不变;

②在0≤r≤1内,有0≤T(r)≤1,确保映射后的像素灰度在允许的范围内。

反变换关系为:

r=T1(s)r=T^{-1}(s)

T1(s)T^{-1}(s)对s同样满足上述两个条件。

由概率论理论可知,如果已知随机变量r的概率密度为pr(r)p_r(r),而随机变量s是r的函数,则s的概率密度ps(s)p_s(s)可以由pr(r)p_r(r)求出。

假定随机变量s的分布函数用Fs(s)F_s(s)表示,根据分布函数定义,则有:

FS(s)=sps(s)ds=rpr(r)drF_{S}(s)=\int_{-\infty}^{s} p_{s}(s) d s=\int_{-\infty}^{r} p_{r}(r) d r

利用密度函数是分布函数的导数的关系,等式两边对s求导,有:

Ps(s)=dds[rpr(r)dr]=pr(r)drds=pr(r)dds[T1(s)]P_{s}(s)=\frac{d}{d s}\left[\int_{-\infty}^{r} p_{r}(r) d r\right]=p_{r}(r) \frac{d r}{d s}=p_{r}(r) \frac{d}{d s}\left[T^{-1}(s)\right]

可见,输出图像的概率密度函数可以通过变换函数T(r)控制原图像灰度级的概率密度函数得到,因而改善原图像的灰度层次,这就是直方图修改技术的基础。

从人眼视觉特性来考虑,一幅图像的直方图如果是均匀分布的,即Ps(s)=kP_s(s)=k(归一化时k=1)时,该图像色调给人的感觉比较协调。因此将原图像直方图通过T(r)调整为均匀分布的直方图,这样修正后的图像能满足人眼视觉要求。

因为归一化假定

ps(s)=1p_s(s)=1

从而有

ds=pr(r)drds=p_r(r)dr

两边积分得

s=T(r)=0rpr(r)drs=T(r)=\int_{0}^{r} p_{r}(r) d r

上式表明,当变换函数为r的累积直方图函数时,能达到直方图均衡化的目的。

对于离散的数字图像,用频率来代替概率,则变换函数T(rk)T(r_k)的离散形式可表示为:

sk=T(rk)=j=0kpr(rj)=j=0knjns_{k}=T\left(r_{k}\right)=\sum_{j=0}^{k} p_{r}\left(r_{j}\right)=\sum_{j=0}^{k} \frac{n_{j}}{n}

上式表明,均衡后各像素的灰度值sks_k可直接由原图像的直方图算出。

直方图均衡化示例

直方图规范化

在某些情况下,并不一定需要具有均匀直方图的图像,有时需要具有特定的直方图的图像,以便能够增强图像中某些灰度级。直方图规定化方法就是针对上述思想提出来的。直方图规定化是使原图像灰度直方图变成规定形状的直方图而对图像作修正的增强方法。

可见,它是对直方图均衡化处理的一种有效的扩展。直方图均衡化处理是直方图规定化的一个特例。

对于直方图规定化,下面仍从灰度连续变化的概率密度函数出发进行推导,然后推广出灰度离散的图像直方图规定化算法。

假设pr(r)p_r(r)pz(z)p_z(z)分别表示已归一化的原始图像灰度分布的概率密度函数和希望得到的图像的概率密度函数。

首先对原始图像进行直方图均衡化,即求变换函数:

s=T(r)=0rpr(r)drs=T(r)=\int_{0}^{r} p_{r}(r) d r

假定已得到了所希望的图像,对它也进行均衡化处理,即

v=G(z)=0zpz(z)dzv=G(z)=\int_{0}^{z} p_{z}(z) d z

它的逆变换是

z=G1(v)z=G^{-1}(v)

这表明可由均衡化后的灰度得到希望图像的灰度。

若对原始图像和希望图像都作了均衡化处理,则二者均衡化的ps(s)p_s(s)pv(v)p_v(v)相同,即都为均匀分布的密度函数。由s代替v得z=G1(s)z=G^{-1}(s)

这就是所求得的变换表达式。根据上述思想,可总结出直方图规定化增强处理的步骤如下:

①对原始图像作直方图均衡化处理;

②按照希望得到的图像的灰度概率密度函数p(zp(z),求得变换函数G(z)G(z);

③用步骤①得到的灰度级s作逆变换z=G1(s)z= G^{-1}(s)

经过以上处理得到的图像的灰度级将具有规定的概率密度函数pz(z)p_z(z)

利用直方图规定化方法进行图像增强的主要困难在于要构成有意义的直方图。图像经直方图规定化,其增强效果要有利于人的视觉判读或便于机器识别。