第3章空域增强: 模板操作
图像是由其基本单元——像素组成的,像素在图像空间是按某种规律排列的,互相之间有一定的联系。在图像处理中,可以且需要根据像素之间的联系来对图像进行加工。
在真实图像中,相邻或接近的像素之间有更密切的联系,常可结合在一起考虑。在图像处理中,常用模板来组合相邻或接近的像素,根据这些像素的统计特性或局部运算来进行操作,称为模板操作或模板运算。利用模板操作来进行图像增强常称为滤波,可以是线性的也可以是非线性的。由于模板操作涉及图像中的局部区域,所以也可方便地进行局部增强。
根据上述的讨论,本章各节将安排如下。
3.1节先对像素的邻域以及像素间的各种联系,包括像素间的邻接、连接和连通,像素集合的邻接和连通,以及像素之间的距离进行介绍。
3.2节讨论模板操作的基本原理和方法(主要是模板卷积操作和模板排序操作),还讨论模板运算功能的分类情况。
3.3节介绍一些典型的利用模板操作实现的线性滤波方法,其功能包括平滑和锐化图像。
3.4节介绍一些典型的非线性滤波方法,其功能也包括平滑和锐化图像。非线性滤波也可与线性滤波方法结合使用。
3.5节分析利用模板操作进行图像局部增强的原理、思路和效果。
3.1像素间联系
模板操作涉及对一组像素的同时操作,为此需要对像素间联系有一定了解。像素之间的联系有多种,既有空间上的联系也有幅度上的联系。下面介绍邻域、邻接、连接和连通等基本概念。
3.1.1像素的邻域和邻接
对一个像素来说,与它关系最密切的常是它的邻近像素/近邻像素,它们组成该像素的邻域。根据对一个坐标为(x,y)的像素p的近邻像素的不同定义,可以得到由不同近邻像素所组成的不同的邻域。常见的像素邻域主要有如下3种形式(更多形式可见本套书中册)。
(1) 4邻域N4(p)
它由像素p的水平(左,右)和垂直(上,下)共4个近邻像素组成,这些近邻像素的坐标分别是(x+1,y),(x-1,y),(x,y+1),(x,y-1)。图3.1.1(a)给出4邻域的一个示例,组成p的4邻域的4个像素均用r表示,它们与p有公共的边。
图3.1.1像素的邻域
(2) 对角邻域ND(p)
它由p的对角(左上,右上,左下,右下)共4个近邻像素组成,这些近邻像素的坐标分别是(x+1,y+1),(x+1,y-1),(x-1,y+1),(x-1,y-1)。图3.1.1(b)给出对角邻域的一个示例,组成p的对角邻域的4个像素均用s表示,它们与p有公共的顶角。对角邻域一般不单独使用。
(3) 8邻域N8(p)
它由p的4个4邻域像素加上4个对角邻域像素合起来构成。图3.1.1(c)给出8邻域的一个示例,其中组成p的8邻域的4个4邻域像素用r表示,4个对角邻域像素用s表示。
需要指出,根据上述对邻域的定义,如果像素p本身处在图像的边缘,则它的N4(p)、ND(p)和N8(p)中的若干个像素会落在图像之外。在图3.1.1中,如果将p的8邻域看作一幅3×3的图像,考虑一下N4(r)、ND(s)、N8(r)和N8(s),就很容易理解这种情况。处理这种情况的方法可见3.2节。
在上述定义的像素邻域中,一个像素与其邻域中的像素是有接触的,也称为邻接的。图像中两个像素是否邻接就看它们是否接触。邻接表示了一种像素间的空间接近关系。
根据像素邻域的不同,邻接也对应分成3种:
4邻接,对角邻接,8邻接。
3.1.2像素间的连接和连通
两个像素的邻接仅与它们的空间位置有关,而像素间的连接和连通还要考虑像素的属性值(以下讨论中以灰度值为例)之间的关系。
1. 像素的连接
对两个像素来说,要确定它们是否连接需要考虑两点: ①它们在空间上是否邻接; ②它们的灰度值是否满足某个特定的相似准则(例如它们灰度值相等,或同在一个灰度值集合中取值)。举例来说,在一幅只有0和1灰度的二值图中,
只有当
一个像素和在它邻域中的像素
具有相同的灰度值时才可以说是连接的。
设用V表示定义连接的灰度值集合。例如在一幅二值图中,为考虑两个灰度值为1的像素之间的连接,可取V={1}。又如在一幅有256个灰度级的灰度图中,考虑灰度值为128~150的两个像素的连接时,取V={128,129,…,149,150}。参见图3.1.1,可讨论以下两种常用的连接。
(1) 4连接: 2个像素p和r在V中取值且r在N4(p)中,则它们为4连接。
(2) 8连接: 2个像素p和r在V中取值且r在N8(p)中,则它们为8连接。
可以看出,两个连接的像素一定是邻接的,但两个邻接的像素不一定是连接的。
2. 像素的连通
在像素连接的基础上,可进一步讨论和定义像素之间的连通。实际上,像素连通可以看作是像素连接的一种推广。为讨论连通先来定义两个像素间的通路。从具有坐标(x,y)的像素p到具有坐标(s,t)的像素q的一条通路由一系列具有坐标(x0,y0),(x1,y1),…,(xn,yn)的独立像素组成。这里(x0,y0)=(x,y),(xn,yn)=(s,t),且(xi,yi)与(xi-1,yi-1)邻接,其中1≤i≤n,n为通路长度。根据所采用的邻接定义不同,可定义或得到不同的通路,如4通路、8通路。这里对通路的定义仅仅考虑了像素坐标空间上的联系(相当于对邻接关系的推广),没有考虑像素属性空间上的联系。
上述通路建立了两个像素p和q之间的空间邻接联系。进一步,如果这条通路上的所有像素的灰度值均满足某个特定的相似准则,即两两邻接的像素也是两两连接的,则可以说像素p和q是连通的。同样根据所采用的连接
图3.1.2邻接、连接、通路、连通
之间的关系
定义的不同,可定义或得到不同的连通,如4连通,8连通。当n=1时,连通转化为其特例——连接。
邻接、连接、通路、连通之间的关系可借助图3.1.2来直观的理解。首先从邻接出发,如果将两个像素的邻接推广到一系列两两邻接的像素就得到通路; 如果将两个像素的空间相近扩展到属性也相似则得到连接关系。进一步,如果将两个像素的连接推广到一系列像素的两两连接就实现了连通; 而如果将仅考虑空间相连的通路扩展到属性相似则也可实现连通。反过来,连接是仅仅两个像素之间的连通; 而通路是不考虑属性的简化。最后,连接不考虑属性的简化就是邻接; 而邻接是仅两个像素的通路。
3. 像素集合的邻接、连接和连通
如果将一幅图像看作一个由像素构成的集合,则根据像素间的联系,常可将某些像素结合组成图像的子集合。换句话说,图像中的子集仍是像素的集合,是图像的一部分。对两个图像子集S和T来说,如果S中的一个或一些像素与T中的一个或一些像素邻接,则可以说两个图像子集S和T是邻接的。这里根据所采用的像素邻接定义,可以定义或得到不同的邻接图像子集。如可以说两个图像子集4邻接,两个8邻接的图像子集等。
类似于像素的连接,对两个图像子集S和T来说,要确定它们是否连接也需要考虑两点: ①它们是否是邻接图像子集; ②它们中邻接像素的灰度值是否满足某个特定的相似准则。换句话说,如果S中的一个或一些像素与T中的一个或一些像素连接,则可以说两个图像子集S和T是连接的。
设p和q是一个图像子集S中的两个像素,如果存在一条完全由在S中的像素组成的从p到q的通路,且其上像素灰度值满足相似准则,那么就称p在S中与q相连通。对S中任一个像素p,所有与p相连通且又在S中的像素组成的集合(包括p)合起来称为S中的一个连通组元。如果S中只有一个连通组元,即S中所有像素都互相连通,则称S是一个连通集。如果一幅图像中所有的像素分属于几个连通集,则可以说这几个连通集分别是该幅图像的连通组元。在极端的情况下,一幅图像中所有的像素都互相连通,则该幅图像本身就是一个连通集。
一幅图像里每个连通集构成该图像的一个区域,所以图像可认为是由一系列区域组成的。如果一个区域中没有孔,称该区域是简单连通的,否则称有孔的区域是多重连通的。一个区域的边界也称区域的轮廓,一般认为轮廓是所在区域的一个子集,它将该区域与其他区域分离开。借助前面对像素邻域的介绍,可以认为组成一个区域的边界像素本身属于该区域而在其邻域中有不属于该区域的像素(更多讨论见中册)。
3.1.3像素间的距离
像素之间的联系常与像素在空间中的接近程度有关。像素在空间中的接近程度可以用像素之间的距离来测量。为测量距离,需要定义距离量度函数。给定3个像素p、q、r,坐标分别为(x,y)、(s,t)、(u,v),如果
满足下列条件,称函数D为一个距离量度函数:
(1) D(p,q)≥0(D(p,q)=0,当且仅当p=q);
(2) D(p,q)=D(q,p);
(3) D(p,q) ≤ D(p,r)+D(r,q)。
上述3个条件中,第1个条件表明两个像素之间的距离总是正的(两个像素空间位置相同时,其间的距离为零); 第2个条件表明两个像素之间的距离与起终点的选择无关,或者说距离是相对的; 第3个条件表明两个像素之间的最短距离是沿直线的。
例3.1.1测度空间
定义在抽象集合A(其元素a1,a2,a3,…可称为点)上的测度是一个从集合向实数集R映射的函数(可记为d: A×A→R),对任意3个a1,a2,a3∈A,都有
(1) d(a1,a2)=0,当且仅当a1=a2;
(2) d(a1,a2)≤d(a3,a1)+d(a3,a2);
(3) d(a1,a2)=d(a2,a1);
(4) d(a1,a2)>0,如果a1 ≠ a2。
二元组(A,d)称为测度空间。□
在图像中,对距离有不同的量度方法。点p和q之间的欧氏距离(也是范数为2的距离)定义为
DE(p,q)=[(x-s)2+(y-t)2] 1/2(3.1.1)
根据这个距离量度,与坐标为(x,y)的像素的DE距离小于或等于某个值d的像素都包括在以(x,y)为中心、以d为半径的圆中。在数字图像中,只能近似地表示一个圆,例如与(x,y)的DE距离小于或等于3的像素组成如图3.1.3(a)所示的多层嵌套的等距离轮廓(图中距离值已四舍五入到保留一位小数)。