2.3 像素之间的联系
通过前面章节的介绍,我们相信读者对像素的概念已经有了较深入的认识,但是如何改变像素值及利用各个像素之间固有的联系来处理整幅图像,还需要进一步学习。本节我们将介绍数字图像中最基本而又比较重要的像素之间的关系,以便加深对像素的认识,也为后面章节内容的学习奠定基础。
2.3.1 像素的邻域
邻域(Neighborhood)意为指定像素附近的一个像素集合。指定的像素称为中心像素,它是进行某些处理的中心。通常有4邻域和8邻域的说法。邻域半径则指邻域最外围像素与中心像素之间的棋盘格距离(后面会有介绍)。不管是4邻域还是8邻域,其邻域半径均为1。有的教材把邻域半径定义为邻域最外围像素与中心像素之间的欧几里得距离,这种定义方法会产生邻域半径的不确定性。
对一个图像中坐标为(x,y)的像素p,其上下左右存在邻接的像素,这些相邻的像素坐标分别为(x+1,y)、(x-1,y)、(x,y+1)、(x,y-1)。它们(用r表示)组成p的4邻域(4-Neighbors),并记为N4(p),见图2.7(a)。像素p与它各个4邻域近邻像素是一个单位距离,可以说此时的邻域半径为1。特殊情况下,如果(x,y)在图像的边缘,它的若干个近邻像素会悬挂在图像外(实际上不存在)。
像素p的对角线方向上的四个近邻像素(用s表示)的坐标是(x+1,y+1),(x+1,y-1),(x-1,y-1),(x-1,y+1)。它们记为ND(p),见图2.7(b)。同样,坐标为(x,y)的像素p与它四个对角近邻像素的棋盘格距离也是一个单位。这些像素点再加上p的4邻域像素合称为p的8邻域,记为N8(p),见图2.7(c)。
图2.7 像素的邻域
如果(x,y)位于图像的边缘,ND(p)和N8(p)中的若干个像素也会落在图像外,呈悬挂状态。在图像处理的某些算法中需要对包括位于图像边界上的所有像素实施同样的邻域操作,但基于邻域的概念却不存在邻域像素,为了保持对图像中包含像素处理的完整性和一致性,我们将对这些悬挂像素进行特殊控制,这叫做像素悬挂问题。在实施具体的图像处理时,尤其在编程实现时必须注意悬挂像素的处理。比较合理也是最简单的处理方法是在图像的边界处拷贝相邻行列的像素值补充邻域像素值,或直接对超出邻域范围的中心像素不予处理。
2.3.2 像素之间的连通性
像素间的连通性在提取图像中目标边界和确定目标区域轮廓时是一个重要的概念。连通性可以进一步被分成连接和连通,连接是连通的一种特例。
下面我们用V表示定义连接的灰度值集合。例如在一幅二值图像中,考虑灰度值为1的像素之间的连通性,V={1}。又如在一幅灰度图像中,考虑具有灰度值在8~16之间像素的连通性,则V={8,9,…,15,16}。我们可定义以下3种连接情况。
①4-连接:两个像素p和q在V中取值(即具有相同的灰度值1)且q在N4(p)中(即在中心像素的4邻域中),则称它们为4-连接。
②8-连接:两个像素p和q在V中取值(即具有相同的灰度值1)且q在N8(p)中(即在中心像素的8邻域中),则称它们为8-连接。
③m-连接(混合连接):两个像素p和q在V中取值且满足下列条件之一,则称它们为m-连接。
a. q在N4(p)中;b. q在ND(p)中且N4(p)∩N4(q)是空集,即q是p的对角线像素,而且对应两个像素的4邻域中的交集像素取值不应该在V中(即灰度值为0)。这个集合是由p和q在V中取值的4-近邻像素组成的。
混合连接可认为是8-连接的一种变型,引入这个概念是为了消除使用8-连接时常会出现的多路连接问题。
考虑图2.8(a)所示的像素排列,当V={1}时,中心像素的8-近邻像素间的连接如图2.8(b)中的连线所示。由于允许8-连接所产生的歧义性(即中心像素和右上角像素间有2条连接路径),这种歧义性当用m-连接时就不存在了[如图2.8(c)所示],因此中心像素和右上角像素之间直接的m-连接不能成立(第1和第2条件均不满足)。
图2.8 像素之间的连接
如果一个像素p与另一个像素q相连接,则它们相毗邻。我们可根据所用的连接来定义4-毗邻、8-毗邻或m-毗邻。对两个图像子集S和T来说,如果S中的一些像素与T中的一些像素毗邻,则S和T是毗邻的。
要确定两个像素是否连接需要在某种意义上确定它们是否接触(例如它们是否为4-近邻像素)以及它们的灰度值是否满足某个特定的相似性准则(例如它们灰度值相等或灰度值之差小于用户指定的阈值)。举例来说,在一幅只有灰度0和1的二值图像中,两个4-近邻像素只有在它们具有相同的灰度值时才可以说是相互连接的。
从具有坐标(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-通路或m-通路。
设p和q是一个图像子集S中的两个像素,则如果存在一条完全由在S中的像素组成的从p到q的通路,那么就称p在S中与q相连通。对S中任一个像素p,所有与p相连通且在S中的像素的集合(包括p)合起来称为S中的一个连通组元。图像里相同连通组元中的两个像素互相连通,而不同连通组元中的各像素互不连通。
2.3.3 像素之间的距离
对于像素p、q和z,其坐标分别为(x,y)、(s,t)和(v,w),把满足下列条件的函数D称为距离函数。即
(2.12)
通常有三种像素间的距离描述,即欧氏距离(Euclidean Distance)、城市街区距离(City-block Distance)、棋盘格距离(Chessboard Distance)。
p和q间的欧氏距离De符合Minkowski距离的计算规律,其定义式如下:
(2.13)
这与通常意义下欧氏空间中两点间距离的描述是一致的。对于距离度量,距像素(x,y)的距离小于或等于某一个值r的像素是中心在(x,y)且半径为r的圆平面。
p和q间的城市街区距离D4定义如下:
(2.14)
在这种情况下,距像素(x,y)的距离小于或等于某一个值r的像素形成一个中心在(x,y)的菱形。例如,距像素(x,y)的距离小于或等于2的像素形成固定距离的下列轮廓:
具有D4=1的像素是(x,y)的4邻域。
p和q间的棋盘格距离D8定义如下式:
(2.15)
在这种情况下,距像素(x,y)的距离小于或等于某一个值r的像素形成一个中心在(x,y)的方形。例如,距离点(x,y)(中心点)的距离小于或等于2的像素形成下列固定的轮廓:
具有D8=1的像素是关于(x,y)的8邻域。因此,我们认为邻域半径采用棋盘格距离来定义是适合对数字图像邻域进行描述的。
注意,p和q间的D4距离和D8距离与任何通路无关。通路可能存在于各点之间,因为这些距离仅与点的坐标有关。