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

有些话、适合烂在心里 提交于 2019-12-27 11:31:30

3.1 背景知识

3.1.1 灰度变换和空间滤波基础

本节讨论的所有图像处理技术都是在空间域进行的。空间与包含图像像素的简单平面。与频率域相反,空间域技术是直接操作图像像素的简单平面。

本章讨论的空间域处理可有下式表示:
g(x,y)=T[f(x,y)] g(x,y)=T\cdot [f(x,y)]
式中,f(x,y)f(x,y)是输入图像,g(x,y)g(x,y)是输出图像,TT是在点的邻域上定义的关于f的一种算子。算子可应用于单幅图像或图像集合。

邻域与预定义的操作一起称为空间滤波器(也称为空间掩模、核、模板、窗口)。在邻域中执行的操作据欸的那个了滤波处理的特性。

最小邻域为1×11\times 1。在这种情况下,gg仅取决于点(x,y)处的ff值,而式(3.1-1)中的TT则成为一个形如下式的灰度(也称为灰度级或映射)变换函数:
s=T(r) s=T(r)
式中,令sstt分别表示ggff在任意点(x,y)(x,y)处的灰度。

例如,如果T(r)T(r)有如图3.2(a)3.2(a)所示的形式,对f中每个像素施以变换产生相应g的像素的效果,将比原始图像有更高的对比度,即低于k的灰度级更暗,而高于k的灰度级更亮。这种技术有时称为对比度拉伸。

阈值处理函数。

增强处理是对图像进行加工,使其结果对于特定的应用比原始图像更合适的一种处理。

3.2 一些基本的灰度变换函数

3.2.1 图像反转

反转图像由下式给出:
s=L1r s=L-1-r
使用这种方式反转一幅图像的灰度级,可得到等效的照片底片。这种类型的处理特别适合用于增强嵌入图像暗色区域中的白色或灰色细节,特别是当黑色面积在尺寸上占主导地位时。

3.2.2 对数变换

对数变换的通用形式为
s=clog(1+r) s=c\cdot log(1+r)
式中c是常数,并假设r0r\geq 0

3.2.3 幂律变换

幂律变换的基本形式是
s=crγ s=cr^{\gamma}
其中c和\gamma 为正常数。有时考虑到偏移量(即输入为0时的一个可度量输出),上式也写为s=c(r+δ)γs=c(r+\delta)^\gamma。然而,偏移量一般是显示标定问题,因而作为一个结果。

image-20191201083842210

3.2.4 分段线性变换函数

对比度拉伸

低对比度图像可由照明不足、成像传感器动态范围太小,甚至在图像获取过程中镜头光圈设置错误引起。对比度拉伸是拓展图像灰度级动态范围的处理,因此,它可以跨越记录介质和显示装置的全部灰度范围。

图3.10(a)显示了一个用于对比度拉伸的典型变换。点(r1,s1),(r2,s2)(r_{1},s_{1}),(r_{2},s_{2})的位置控制变换函数的形状。如果r1=s1 and r2,s2r_{1}=s_{1}\ and \ r_{2},s_{2},则变换为一线性函数,将产生一个没有变化的灰度级。r1=r2 and s2=L1 and s1=0r_{1}=r_{2}\ and \ s_{2}=L-1\ and \ s_{1}=0,则变换为阈值处理函数,并产生一幅二值图像。

灰度级分层

突出图像中特定灰度范围的亮度通常是重要的,通常称之为灰度级分层的处理可以有许多种办法实现,但是他们中的大多数是两种方法的变形。一种方法是将感兴趣范围内的所有灰度值显示为一个值,而将其他灰度值显示为另一个值。如图3.11(a)所示,改变换产生了一幅二值图像。第二种方法以图3.11(b)所示的变换为基础,使感兴趣范围的灰度变亮(或变暗),而保持图像中的其他灰度级不变。

比特平面分层

3.3 直方图处理

灰度级范围为[0,L1][0,L-1]的数字图像的直方图是离散函数h(rk)=nkh(r_{k})=n_{k},其中rkr_{k}是第kk级灰度值,nkn_{k}是图像中灰度为rkr_{k}的像素个数。在实践中,经常使用乘积MNMN表示的图像像素的总数除它的每个分量来归一化直方图,通常M和N是图像行和列的维数。因此,归一化后的直方图由p(rk)=nk/MNp(r_{k})=n_{k}/MN给出,其中k=0,1,,L1k=0,1,\cdots ,L-1。

直方图是多种空间域处理技术的基础。直方图操作可用于图像增强。

3.3.1 直方图均衡

考虑连续灰度值,并用变量rr表待处理图像的灰度。通常,我们假设r的取值区间为[0,L-1],且r=0表示黑色,r=L-1表示白色。在r满足这些条件的情况下,我们将注意力集中在变换形式
s=T(r), 0rL1(3.3-1) s=T(r),\ 0\leqslant r\leqslant L-1 \tag{3.3-1}
上(灰度映射),对于输入图像中每个具有rr值得像素值产生一个输出灰度值ss。我们假设

  1. T(r)T(r)在区间0rL10\leqslant r\leqslant L-1上为单调递增函数。

  2. 0rL10\leqslant r\leqslant L-1时,0T(r)L10\leqslant T(r)\leqslant L-1

稍后讨论中我们用反函数
r=T1(s), 0sL1(3.3-2) r=T^{-1}(s),\ 0\leqslant s\leqslant L-1 \tag{3.3-2}
在这种情况下,条件(1)改为

  1. T(r)T(r)在区间0rL10\leqslant r\leqslant L-1上为单调递增函数。

条件1要求T(r)T(r)为单调递增函数是为了保证输出灰度值不少于响应的输入值,防止灰度反变换时产生重复值。条件2保证输出灰度的范围与输入灰度的范围相同。

一幅图像的灰度级可看成是区间[0,L-1]内的随机变量。随机变量的基本描绘子是其概率密度函数(PDF)。令Pr(r)P_{r}(r)Ps(s)P_{s}(s)分别表示随机变量rrss的概率密度函数,其中下表用于指示函数不同。由基本概率论得到的一个基本结果是,如果Pr(r)P_{r}(r)Ps(s)P_{s}(s)已知,且在感兴趣的值域上T(r)T(r)是连续且可微的,则变换后的变量s的PDF可由下面的简单公式得到
Ps(s)=Pr(r)drds(3.3-1) P_{s}(s)=P_{r}(r)\cdot \left | \frac{dr}{ds} \right| \tag{3.3-1}

这样,我们看到,输出灰度变量s的PDF就由输入灰度的PDF和所用的变换函数决定。

在图像处理中特别重要的变换函数由如下形式:
s=T(r)=(L1)0rpr(w)dw(3.3-4) s=T(r)=(L-1)\int_{0}^{r}p_{r}(w)dw \tag{3.3-4}
公式右边是随机变量r的累积分布函数CDF。因为PDNF总为正,故满足条件1和2。

为寻找刚才讨论的相应变换的ps(s)p_{s}(s),我们使用式(3.3-3)。我们有莱布尼茨法则可知,关于上限的定积分的导数是被积函数在该上限的值,即
dsdr=dT(r)dr=(L1)d[0rpr(w)dw]dr=(L1)pr(r)(3.3-5) \frac{ds}{dr}=\frac{dT(r)}{dr}=(L-1)\frac{d[\int_{0}^{r}p_{r}(w)dw]}{dr}=(L-1)p_{r}(r)\tag{3.3-5}
把dr/ds的这个结果带入式(3.3-3)中,有
Ps(s)=Pr(r)drds=Pr(r)1(L1)Pr(r), 0sL1 P_{s}(s)=P_{r}(r)\cdot \left | \frac{dr}{ds} \right|=P_{r}(r)\cdot \left | \frac{1}{(L-1)P_{r}(r)} \right|,\ 0\leqslant s \leqslant L-1
从该公式的最后一行可知,这是一个均匀概率密度函数。简而言之,我们已证明执行式(3.3-4)的灰度变换将得到一个随机变量s,该随机变量由一个均匀PDF表征。

对于离散值,一幅数字图像中灰度级rkr_{k}出现的概率近似为
p(rk)=nkMN, k=0,1,2,,L1(3.3-7) p(r_{k})=\frac{n_{k}}{MN},\ k=0,1,2,\cdots,L-1 \tag{3.3-7}
其中,域rkr_{k}相对的pr(rk)p_{r}(r_{k})的图形通常称为直方图。

(3.34)(3.3-4)中变换的离散形式为
sk=T(rk)=(L1)j=0kpr(rj)=(L1)MNj=0knj, k=0,1,2,,L1(3.3-8) s_{k}=T(r_{k})=(L-1)\sum_{j=0}^{k}p_{r}(r_{j})=\frac{(L-1)}{MN}\sum_{j=0}^{k}n_{j},\ k=0,1,2,\cdots,L-1\tag{3.3-8}
这样,输出图像通过上式将输入图像灰度级为rkr_{k}的各像素映射到输出图像中灰度级为sks_{k}的对应像素得到。在这个公式中,变换T(rk)T(r_{k})称为直方图均衡或直方图线性变换。

3.3.2 直方图匹配(规定化)

如前所述,直方图均衡能自动地确定变换函数,该函数寻求产生有均匀直方图的输出图像。特别地,有时我们希望处理后的图像具有规定的直方图形状可能更有用。这种用于产生处理后的有特殊直方图的方法称为直方图匹配或直方图规定化。

ss为一个有如下特性的随机变量:
s=T(r)=(L1)0rpr(w)dw(3.3-10) s=T(r)=(L-1)\int_{0}^{r}p_{r}(w)dw \tag{3.3-10}
其中,如前面一样,ww为积分假变量。

接着,我们定义一个有如下特性的的随机变量zz
s=G(z)=(L1)0zpz(t)dt(3.3-11) s=G(z)=(L-1)\int_{0}^{z}p_{z}(t)dt \tag{3.3-11}

式中,tt为积分假变量。由这两个等式可得G(z)=T(r)G(z)=T(r),因此zz必须满足下列条件:
z=G1[T(r)]=G1(s)(3.3-12) z=G^{-1}[T(r)]=G^{-1}(s)\tag{3.3-12}
一旦输入图像估计出pr(r)p_{r}(r)T(r)T(r)就可得到,类似,由pz(z)p_{z}(z)也可得到G(z)G(z)

使用以下步骤,可由一幅给定图像得到一幅其灰度级具有指定概率密度的图像:

  1. 由输入图像得到pr(r)p_{r}(r),并由(3.3-10)求得ss的值。
  2. 使用(3.3-11)中指定的PDF得到变换函数G(z)G(z)
  3. 求得反变换函数z=G1(s)z=G^{-1}(s);因为zz是由ss得到的,所以该处理是sszz的映射,而后者正是我们期望的值。
  4. 首先用式(3.3-10)对输入图像进行均衡得到输出图像;该图像的像素值是ss值。对均衡后的图像中具有ss值得每个像素执行反映射z=G1(s)z=G^{-1}(s),得到输出图像中的相应像素。当所有像素都处理完后,输出图像的PDF将等于指定的PDF。

3.4 空间滤波基础

滤波是指接受(通过)或拒绝一定的频率分量。

例如,通过低频的滤波器称为低通滤波器。低通滤波器的最终效果是模糊(平滑)一幅图像。我们可以用空间滤波器(也称空间掩模、核、模板、窗口)直接作用域图像本身而完成类似的平滑。

3.4.1 空间滤波机理

如果在图像像素上执行的是线性操作,则该滤波器称为线性空间滤波器。否则,滤波器就称为非线性空间滤波器。

一般来说,使用m×nm\times n的滤波器对大小为M×NM\times N的图像进行线性空间滤波,可由下式表示:
g(x,y)=x=aabbw(s,t)f(x+s,y+t) g(x,y)=\sum_{x=-a}^{a} \sum_{-b}^{b}w(s,t)f(x+s,y+t)
其中,x和y是可变的,以便w中的每个像素的可访问f中的每个像素。

3.4.2 空间相关与卷积

相关是滤波器模板移过图像图像并计算每个位置乘积之和的处理。

卷积的机理相似,但滤波器首先要旋转180度。

相关是滤波器位移的函数。

我们将包含单个1而其余都是0的函数称为离散单位冲激。因此,我们得出结论:一个函数与离散单位冲激相关,在该冲激位置产生这个函数的一个翻转的版本。

卷积的概念是线性系统理论的基石。卷积的基本特性是某个函数与某个单位冲激卷积,得到一个在该冲激出的这个函数的拷贝。

一个大小为m×nm\times n的滤波器与一幅图像f(x,y)f(x,y)做相关操作,可表示为
w(x,y)f(x,y)=x=aabbw(s,t)f(x+s,y+t) w(x,y)\cdot f(x,y)=\sum_{x=-a}^{a} \sum_{-b}^{b}w(s,t)f(x+s,y+t)

3.4.3 线性滤波的向量表示

当我们的兴趣在于相关或卷积的模板响应特性R时,有时写成乘积的求和形式是方便的:
R=w1z1+w2z2++wmnzmn=k=1mnwkzk=wTz R=w_{1}z_{1}+w_{2}z_{2}+\cdots +w_{mn}z_{mn}=\sum_{k=1}^{mn}w_{k}z_{k}=w^{T}z

3.4.4 空间滤波器模板的产生

生成一个大小为m×nm\times n的线性空间滤波器要求指定mnmn个模板系数,这些系数是根据该滤波器支持什么一样的操作来选择的,记住,我们使用的线性滤波所能做的所有事情是实现乘积求和操作。例如,假设我们想要将图像中的这些像素替换为以这些像素为中心的3×33\times 3邻域的平均灰度。在图像中任意位置(x,y)的灰度平均值是以(x,y)(x,y)为中心的3×33\times 3的9个灰度值之和除以99。令zi,i=1,2,,9z_{i},i=1,2,\cdots,9表示这些灰度,那么平均灰度为
R=19i=19zi R=\frac{1}{9}\sum_{i=1}^{9}z_{i}
在某些应用中,我们有一个具有两个变量的连续函数,其目的是基于该函数得到一个空间滤波模板。例如,一个具有两个变量的高斯函数有如下基本形式:
h(x,y)=ex2+y22σ2 h(x,y)=e^{-\frac{x^{2}+y^{2}}{2\sigma ^{2}}}
其中,σ\sigma是标准差,并且,通常我们假设坐标xxyy是整数。譬如,为了从该函数产生一个大小为3×33\times 3的滤波器模板,我们关于其中心进行取样,使用类似的方式可产生一m×nm\times n的滤波器模板。

产生非线性滤波器要求我们确定领域的大小,遗迹将对包含在邻域内的图像像素执行的操作。

3.5 平滑空间滤波器

平滑滤波器用于模糊处理降低噪声。模糊处理经常用于预处理任务中,例如在(大)目标提取之前去除图像中的一些琐碎细节,以及桥接直线或曲线的缝隙。通过线性滤波和非线性滤波模糊处理,可以降低噪声。

3.5.1 平滑线性滤波器

平滑线性空间滤波器的输出(响应)是包含在滤波器模板邻域内的像素的简单平均值。这些滤波器有时也称为均值滤波器。它使用滤波器模板确定的邻域内像素的平均灰度值代替图像中每个像素的值,这种处理的结果降低了图像灰度的“尖锐”变化。由于典型的随机噪声由灰度级的急剧变化组成,因此,常见的平滑噪声处理应用就是降低噪声。然而,由于图像边缘也就是图像灰度尖锐变化带来的特性,所以均值滤波处理还是存在着不希望有的边缘模糊的负面效应。另外,这类处理的其他应用到由于灰度级数量不足而引起的伪轮廓效应的平滑处理。均值滤波器的主要应用是去除图像中的不相关细节,其中“不相关”是指域滤波器模板尺寸相比较小的像素区域。

平滑线性空间滤波器的输出(响应)是包含在滤波器模板邻域内的像素的简单平均值。有时也称为均值滤波器。平滑滤波器使用滤波器模板确定的邻域内的像素的平均灰度值来代替图像中每个像素的值,这种处理的结果降低了图像灰度的“尖锐”变化。由于典型的随机噪声由灰度级的急剧变化组成,因此,常见的平滑处理应用就是降低噪声。

然而,图像边缘(几乎总是一幅像希望有的特性)也是由图像灰度尖锐变化带来的特性,所以均值滤波处理还存在着不希望有的边缘模糊的负面效应。均值滤波器只要是去除图像中的不相关细节,其中,“不相关”是指与滤波器模板尺寸相比较小的像素区域。

第二个模板更为重要一些。该模板产生所谓的加权平均,使用这一术语是指不同的系数乘以像素,即一些像素的重要性(权重)比另一些像素的重要性更大。在图3.32(b)所示的模板中,处于该模板中心位置的像素所乘的值比其他任何像素所乘的值都大,因此,在均值计算中为该像素提供更大的重要性。其他像素如同是模板中心到各位置反比例距离函数。

一幅M×NM\times N的图像经过一个大小为m×nm\times n(m和n是奇数)的加权均值滤波器滤波的过程可由下式给出:
g(x,y)=x=aax=bbw(s,t)f(x+s,y+t)x=aax=bbw(s,t) g(x,y)=\frac{\sum_{x=-a}^{a}\sum_{x=-b}^{b}w(s,t)f(x+s,y+t)}{\sum_{x=-a}^{a}\sum_{x=-b}^{b}w(s,t)}

3.5.2 统计排序(非线性)滤波器

统计排序滤波器是一种非线性空间滤波器,这种滤波器的响应以滤波器包围的图像区域中所包含的像素的排序为基础,然后使用统计排序结果决定的值代替中心像素的值。这一类中最知名的滤波器是中值滤波器,它是将像素邻域内灰度的中值代替该像素的值。

中值滤波器对处理脉冲噪声非常有效,该种噪声也称为椒盐噪声, 因为这种噪声是以黑白点的形式叠加在图像上的。

事实上,我们使用m×mm\times m中值滤波器来去除那些相对于其邻域像素更亮或更暗并且其区域小于m2/2m^2/2(滤波器区域的一半)的孤立像素族。在这种情况下,“去除”的意思是强制为邻域的中值灰度。

3.6 锐化空间滤波器

锐化处理的主要目的是突出灰度的过度部分。上一节中,我们了解到,图像模糊可通过可通过在空间域像素邻域平均法实现。在以下两节中,我们将分别详细讨论基于一阶和二阶微分的锐化滤波器。

3.6.1 基础

为简化说明,我们主要集中讨论一阶微分的性质。我们最感兴趣的是恒定灰度区域中,突变的开始点与结束点(台阶和斜坡突变)及沿着灰度斜坡处的微分性质。在第10章中,这些类型的突变可以用来对图像中的噪声点、线与边缘建模。

数字函数的微分可以用不同的术语定义。也有各种方法定义这些差别。然而,对于一阶微分的任何定义都必须保证以下几点:

  1. 恒定灰度区域的微分值为零;
  2. 在灰度台阶或斜坡处微分值非零;
  3. 沿着斜坡的微分值非零。

二阶微分定义需满足:

  1. 在恒定区域微分值非零;

  2. 在灰度台阶或斜坡的起点微分值非零;

  3. 沿着斜坡的微分值非零。

    因为我们处理的是数字量,其值是有限的,故最大灰度级的变化也是有限的,并且变化发生的最短距离实在两相邻像素之间。

    对于1D1-D函数f(x)f(x)其一阶微分的基本定义是差值
    fx=f(x+1)f(x)(3.6-1) \frac{\partial f}{\partial x}=f(x+1)-f(x) \tag{3.6-1}

对于二维函数,我们将沿着两个空间轴处理偏微分。当前讨论的空间微分的应用并不影响我们试图采用的任何方法的本质。

我们将二阶微分定义为如下差分:
2fx2=f(x+1)+f(x1)2f(x)(3.6-2) \frac{\partial^{2} f}{\partial x^2}=f(x+1)+f(x-1)-2f(x) \tag{3.6-2}
image-20191130232225281

事实上,我们在图3.36©中看到,在一个台阶的过渡中,连接这两个值的线段在两个端倪单的中间与水平轴相交。正如第10章中所示,零交叉对于边缘定位是非常有用的。

数字图像中的边缘在灰度上常常类似于斜坡过度,这样就导致图像的一阶微分产生较粗的边缘,因为沿着斜坡的微分为零。另一方面,二阶微分产生由零分开的一个像素宽的双边缘。由此,我们得出结论,二阶微分在增强细节方面要比一阶微分好得多,这是一个适合锐化图像的理想特性。

3.6.2 使用二阶微分进行图像锐化——拉普拉斯算子

这种方法基本上是由定义一个二阶微分的离散公式,然后构造一个基于该公式的滤波器模板组成的。我们最关注的是一种各向同性滤波器,

3.6.4 使用一阶微分锐化(非线性)图像——梯度

图像处理中的一阶微分是用梯度幅值来实现的。对于函数f(x,y)f(x,y),ff在坐标(x,y)(x,y)处的梯度定义为二维列向量
fgrad(f)[gxgy]=[fxfy](3.6-10) \nabla f \equiv grad(f)\equiv \left [ \begin{matrix} g_x \\ g_y \end{matrix}\right ] =\left [ \begin{matrix} \frac{\partial f}{\partial x} \\ \frac{\partial f}{\partial y} \end{matrix}\right ]\tag{3.6-10}
该列向量指出了在位置(x,y)(x,y)ff的最大变换率的方向。

向量f\nabla f的幅值表示为
M(x,y)=mag(f)=gx2+gy2 M(x,y)=mag(\nabla f)=\sqrt{g_{x}^{2}+g_{y}^{2}}
他是梯度向量方向变换率在(x,y)(x,y)处的值。M(x,y)M(x,y)是与原图像大小相同的图像,该图像称为梯度图像。

因为梯度向量的分量是微分,故各分量是线性算子,但幅值不是。另一方面,式(3.6-10)中的偏微分不是旋转不变的(各向同性),而梯度向量的幅度是旋转不变的。在某些实现中,用绝对值来近似更适合于计算、;
M(x,y)=gx+gy(3.6-12) M(x,y)=\left |g_{x} \right |+\left |g_{y}\right | \tag{3.6-12}
该表达式保留了灰度的相对变化,但通常丢失了各向同性。

Roberts交叉差分

gx=z9z5  and  gy=z8z6 g_{x}=z_{9}-z_{5}\ \ and \ \ g_y=z_8-z_6

相应的梯度图像为
M(x,y)=[(z9z5)2+(z8z6)2]0.5 M(x,y)=\left [(z_{9}-z_{5})^{2}+(z_8-z_6)^{2} \right ]^{0.5}

M(x,y)=z9z5+z8z6 M(x,y)=\left |z_{9}-z_{5}\right |+\left |z_8-z_6\right |
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ajQFXC4v-1575454612214)(C:\Users\lenovo\AppData\Roaming\Typora\typora-user-images\image-20191204103227883.png)]

Soble算子

gx=(z7+2z8+z9)(z1+2z2+z3) g_x=(z_7+2z_8+z_9)-(z_1+2z_2+z_3)


gy=(z3+2z6+z9)(z1+2z4+z7) g_y=(z_3+2z_6+z_9)-(z_1+2z_4+z_7)

3.7 混合空间增强法

3.8 使用模糊技术 进行灰度变换和空间滤波

3.8.2 模糊集合论原理

定义

ZZ为元素集,zz表示ZZ的一类元素,即Z={z}Z=\{ z \}。该集合称为论域

ZZ中的模糊集合AA由隶属度函数μA(z)\mu _{A}(z)表征,它是与ZZ的元素相关的在区间[0,1][0,1]内的一个实数。

μA(z)\mu _{A}(z)zz处的值表示AAzz中的隶属度等级。最接近μA(z)\mu _{A}(z)的值与在AA中的zz的较高的隶属度等级趋于一致,而当μA(z)\mu _{A}(z)接近于00时,则相反。“属于”在模糊集合论中有不同的含义。

对于模糊集合,我们说对于μA(z)=1\mu _{A}(z)=1的所有zz都是集合的完全成员,对于集合μA(z)=0\mu _{A}(z)=0的所有zz都不是集合的成员,而μA(z)\mu _{A}(z)的值介于0和1之间的所有z是集合的部分成员。

因此,模糊集合是一个由z值和赋予z成员等级的相应隶属度函数组成的序对,即
A={z,μA(z)zZ} A=\{z,\mu _{A}(z)|z\in Z\}

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!