3.5 空域卷积增强
在图像空间中,除了对整幅图像进行逐像素处理,也可考虑对图像中某一区域的像素集合进行处理。利用不同的方式,可获得不同的增强效果。
3.5.1 模板卷积
图像中一个区域内的像素常表示成一个中心像素和其近邻像素的集合。邻域中的处理主要以模板(样板、窗和滤波器也常被用来代表模板)运算的形式实现。模板运算的思想是在图像处理中将赋予某个像素的值作为其本身灰度值和其近邻像素灰度值的函数值。在对模板进行设计时,可利用空间占有数组来表达图像,通过对数组单元取不同的值来达到不同的运算目的。例如,考虑如图3-15(a)所示的子图区域,用以z5为中心的3×3区域中的像素平均值来替换z5的值,则要进行如式(3.15)的算术运算,并将z的值赋予z5。
图3-15 模板运算示例
利用如图3-15(b)所示的模板,以上运算可用更一般的形式完成,即将模板中心放在z5之上,用模板中对应的系数与模板下的像素值相乘并累加结果:
如果令wi=1/9,i=1,2,…,9,则可得到与前述平均过程相同的结果。
式(3-16)在图像处理中得到了广泛应用,其中的运算实际上是一个相关运算。恰当地选择模板中的各系数并在图像每个像素位置使用模板进行运算,可以完成一系列有用的图像处理操作,如噪声消除、区域细化和边缘提取等。
3.5.2 空域滤波
当模板在空间上关于中心像素对称时,前述相乘并相加的运算就等价于一个卷积运算。空域滤波就是在图像空间中借助模板进行卷积操作完成的,根据特点一般可分为线性空域滤波和非线性空域滤波两类。另外,各种空域滤波器根据功能又主要分成平滑的空域滤波器(消除噪声或模糊图像以在提取较大的目标前去除过小的细节或将目标内的小间断连接起来)和锐化的空域滤波器(增强图像中的边缘细节)。结合这两种分类方法,可将空域滤波增强方法分成4类(见表3-3)。
表3-3 空域滤波增强方法分类
空域滤波增强功能的实现基于对模板卷积的利用,通过选择不同的模板系数,可实现不同的增强效果。
1. 线性平滑滤波
实现线性平滑滤波的模板中的所有系数都是正的。对3×3的模板来说,最简单的方法是所有系数都取为1。为保证输出图像仍在原来的灰度值范围内,在算得结果后要将其除以9再进行赋值,如式(3-15)所示。这种方法也常称为邻域平均,相当于一个积分运算。
例3-13 线性平滑滤波的模糊消噪效果
图3-16(a)为原始的8bit灰度图像,图3-16(b)为叠加了均匀分布的随机噪声的图像,图3-16(c)、图3-16(d)、图3-16(e)和图3-16(f)依次为用5×5、7×7、9×9和11×11模板对图3-16(b)进行平滑滤波的结果。可见,当所用模板尺寸增加时,对噪声的消除作用也会增强,但同时,得到的图像变得更为模糊,细节逐步减少。
图3-16 线性平滑滤波的模糊消噪效果
2. 非线性平滑滤波
线性平滑滤波在消除噪声的同时会将图像中的一些细节模糊掉。如果既要消除噪声又要保留图像的细节,则可以使用中值滤波,它实现了一种非线性平滑滤波,其主要步骤如下。
(1)使模板在图像中“漫游”,并将模板中心对准图像中的某个像素位置。
(2)读取模板下各对应像素的灰度值。
(3)将这些灰度值从小到大排成一列。
(4)找出位于正中间的一个灰度值。
(5)将这个中间值赋给对应模板中心位置的像素。
由以上步骤可以看出,中值滤波的主要功能就是使与周围像素灰度差别较大的像素改取与周围像素灰度值接近的值,从而消除孤立的噪声点。如果使用尺寸为M×M的模板(M为奇数),设从图像中读取的像素灰度值从小到大排成{f1,f2,…,fM,fM+1,…,fM×M},则输出值为f(M×M+1)/2。在一般情况下,图像中尺寸小于模板尺寸一半的过亮或过暗区域将会在滤波后被消除。由于中值滤波不是简单的取平均值,所以产生的模糊比较少。
例3-14 邻域平均和中值滤波效果对比
图3-17给出对同一幅图像分别用邻域平均和中值滤波处理的结果。仍考虑如图3-16(b)所示的叠加了均匀分布的随机噪声的图像,这里,图3-17(a)和图3-17(c)分别为用3×3和5×5模板进行邻域平均处理的结果,而图3-17(b)和图3-17(d)分别为用3×3和5×5模板进行中值滤波处理的结果。两相比较可见,中值滤波处理结果的视觉效果要比邻域平均处理结果的视觉效果好,主要特点是在进行中值滤波后图像中各区域的轮廓仍比较清晰。
图3-17 邻域平均和中值滤波效果对比
另外,在实际应用中,须根据应用要求选取大小合适的模板,兼顾运算时间和消噪效果。
3. 线性锐化滤波
实现线性锐化滤波的模板的中心系数应为正值,而周围的系数应为负值。当使用3×3模板时,典型的系数取值是取图3-15(b)中的w5为8,而其余系数为-1,这样所有系数之和为0。当把这样的模板放在图像中灰度值是常数或变化很小的区域上时,其卷积输出为0或很小。注意,这个滤波器会将原始图像中的零频率分量去除,也就是将输出图像的平均灰度值变为0,这样输出图像中就会有一部分像素的灰度值小于0。在图像处理中一般只考虑正的灰度值,所以还需要将输出图像的灰度值范围通过变换控制在[0, Gmax]中。
锐化滤波的效果可用原始图像f(x, y)减去平滑图像L(x, y)得到。更进一步,如果将原始图像乘以一个放大系数A再减去平滑图像就能实现高频提升滤波:
若A=1,就是普通的锐化滤波;若A>1,原始图像的一部分与用H(x, y)滤波得到的锐化图像相加,恢复了部分锐化滤波时丢失的低频分量,使得最终结果与原始图像更接近。因为平滑滤波常会使图像模糊,所以从原始图像中减去模糊图像的操作也称(非锐化)掩模。此时对于如图3-15(b)所示的3×3模板,其中心系数的取值应是w5=9A-1。
例3-15 线性锐化滤波与高频提升滤波效果对比
图3-18(a)为带有一定模糊的实验图像,图3-18(b)为对图3-18(a)进行线性锐化滤波的结果;图3-18(c)为对图3-18(a)进行高频提升滤波的结果(其中A=2),图3-18(d)为在此基础上又对灰度值范围进行扩展(利用直方图均衡化)的结果,可见模糊消除的效果是很明显的。
图3-18 线性锐化滤波与高频提升滤波效果对比
4. 非线性锐化滤波
线性锐化滤波计算相邻像素间灰度的差值,相当于进行了一个微分运算,可见可以利用微分运算锐化图像。在图像处理中,最常用的微分方法是利用梯度的方法。对于一个连续函数f(x, y),其梯度是一个矢量,由(用2个模板)分别沿x和y方向计算微分的结果构成:
梯度的幅度可以以2为范数来计算(对应欧氏距离),即
在实际应用中,为了计算简便,也可用其他方法组合2个方向的微分结果。
一种简单的方法是利用城区距离(以1为范数),即
另一种简单的方法是利用棋盘距离(以∞为范数),即
由于利用各种范数计算梯度幅度的方法都是非线性的,所以它们也都是非线性滤波方法。关于利用不同距离计算梯度幅度的进一步讨论可参见7.2节。