1第十章二值图像处理2第十章二值图像处理图像经分割之后,通常所获得的是二值图像。在理想情况下,希望该二值图像中的两个值准确地代表“目标”及“背景”两个问题。但实际中,往往所检测到的“目标”只是“候补目标”,原因是:为了保证没有丢失目标,在图像分割时,允许有若干个“假目标”出现。经过图像分割之后,所提取的是多个目标。因此需要对所获得的二值图像进行处理,实现对目标的分析。以下假设在二值图像中,目标像素点的值为1,背景像素点的值为0。310.1二值图像中的基本概念10.1.1四连接与八连接如右图,标记为0的位置为当前点像素,其周围的八个像素点分别标记为1-8,这八个像素称为当前像素点的八近邻,而其中标记为1,3,5,7的四个像素是当前像素点的四近邻。四近邻与八近邻410.1二值图像中的基本概念10.1.1四连接与八连接若当前点像素值为1,其四近邻像素中至少有一个点像素值为1,即认为两点间存在通路,称为四连接。同样,如果其八近邻像素中至少有一个点的像素值为1,称为八连接。510.1二值图像中的基本概念10.1.1四连接与八连接在搜索边界轮廓时,如图8.2所示,四连接的路径(见图8.2(a))与八连接的路径(见图8.2(b))各不相同。换句话说,图8.2(c)中的两点之间的关系在八连接的意义下是连通的,而在四连接意义下是不连通的。将相互连接在一起的像素值全部为1的像素点的集合称为一个连通域。如右图(b)所示,在四连接意义下是三个连通域,在八连接意义下是一个连通域。610.1二值图像中的基本概念10.1.2内部点与边界点在每个连通域中,与背景相邻接的点称为边界点,与背景不相邻接的点称为内部点。下图所示是在四连接与八连接定义下的内部点与边界点的示意图。从下图(b)可以看到,在四连接定义下,内部点是“在当前点的八近邻像素点中,没有值为0的点”,而在八连接定义下,内部点是“在当前点的四近邻像素点中,没有值为0的点”。710.1二值图像中的基本概念10.1.3连接数与交叉数连接数是指在沿着当前点的近邻(四近邻或者是八近邻)像素所构成的边界轨迹上移动时,通过的像素值为1的点的个数。下图所示的6种不同的典型连接方式。810.1二值图像中的基本概念10.1.3连接数与交叉数下表列出了连接数与当前像素点属性之间的关系。交叉数是表征当前点像素的八个近邻像素中,从像素值为1的点到像素值为0的点的变化次数。910.1二值图像中的基本概念10.1.4欧拉数在对二值图像进行分析时,常常会有如下图所示的两种不同形式的连通域。把没有孔的连通域称为单连通,至少含有一个孔的连通域称为多连通。欧拉数就是用以表征连通域属性的值。定义欧拉数为二值图像中连通域的个数减去孔的个数。1010.1二值图像中的基本概念10.1.5链码链码是对线宽为一个像素的细线的轨迹进行描述的编码;链码方法是对其坐标序列进行方向编码的方法。采用链码方法可以对细线的走向进行清晰的描述与分析。右图给出了八个方向的编码定义,根据这个方向码的定义,即可求出一条细线的链码。在计算细线的链码时,从选定的某个端点出发,按着逆时针方向搜索下一个细线上的点,并根据与前一个点的方向位置,对这一点进行编码,直到终点。1110.1二值图像中的基本概念10.1.5链码以右图为例,进行该细线的链码计算(为方便观察,图中未标注数值的像素点上的值为0)。如果以实线框中的像素为起点,虚线框中的像素为终点,则可得到该线的链码为:1,0,7,6,5,5,5,6,0,0,0,01210.1二值图像中的基本概念10.1.6几何特征的测量在图像处理与分析技术中,许多场合下对所拍摄的图像进行二值化处理,然后对所分割出的目标区域进行几何特征的测量。本节介绍以下几个最基本的二值图像中的几何特征量及其计算方法:1.面积2.周长3.质心4.圆形度5.矩形度6.长宽比1310.1二值图像中的基本概念10.1.6几何特征的测量1.面积在二值图像中,面积是对二值化处理之后的连通域的大小进行度量的几何特征量。面积定义为连通域中像素的总数。设二值图像目标物的像素值为1,则面积的计算公式如下:其中:S为需要进行度量的连通域;f(x,y)为像素值。如右图所示的连通域的面积为:3+5+5+5+3=211410.1二值图像中的基本概念10.1.6几何特征的测量2.周长周长是指包围某个连通域的边界轮廓线的长度。因为在轮廓线上有垂直、水平方向的移动,也有斜对角方向上的移动,如果只是简单地对轮廓线上像素值进行累计计算,则会使垂直、水平方向上的长度夸大,为此将这两种方向上的像素分类进行计算,可以得到一个合理的周长定义。周长的计算公式定义如下:其中:Ne为边界线上方向码(链码定义中的方向码)为偶数的像素个数;No为边界线上方向码为奇数的像素个数。1510.1二值图像中的基本概念10.1.6几何特征的测量2.周长如右图所示的连通域的周长为:1610.1二值图像中的基本概念10.1.6几何特征的测量3.质心质心原本意思是物体的质量中心。在二值图像中,采用质心的概念,可以对连通域的几何中心进行描述。为了借用质心的概念,假设二值图像的每个像素的“质量”是完全相同的。在此前提下,质心的计算公式定义如下:其中,S表示连通域;NS为连通域中像素的个数;(xm,ym)为质心点的坐标。1710.1二值图像中的基本概念10.1.6几何特征的测量3.质心例如,右图所示连通域的质心为因此,该连通域的质心为(xm,ym)=(4,4)。1810.1二值图像中的基本概念10.1.6几何特征的测量4.圆形度二值图像中的各个连通域的形状通常是不规则的。为了进行图像分析,经常采用该连通域与标准形状的近似度量来描述其形状。圆形度是某连通域与圆形相似程度的量。根据圆周长与圆面积的计算公式,定义圆形度的计算公式如下:其中,AS为连通域S的面积;LS为连通域S的周长。1910.1二值图像中的基本概念10.1.6几何特征的测量4.圆形度前面已经计算得到右图所示圆形连通域的面积为AS=21,周长为LS=13.66,则其圆形度为右下图中矩形与菱形连通域的圆形度为:2010.1二值图像中的基本概念10.1.6几何特征的测量4.圆形度如上例,圆形连通域的圆形度为1.41,对下面右图所示的矩形与菱形连通域的圆形度进行标准化处理后,有:2110.1二值图像中的基本概念10.1.6几何特征的测量4.圆形度值得注意的是,理论上圆形度的值不大于1。前述结果是因为该图像的分辨率太低,换句话说,连通域的面积太小,导致在计算面积与周长时都有一定量化偏差所导致的。但前例中给出的三个不同形状的连通域的圆形度的值来比较,仍旧还是圆形连通域的圆形度最大。在这里提醒读者注意在进行图像分析或图像测量时,遇到类似的情况,可以以相同分辨率圆形连通域的圆形度为标准,对所分析或测量的连通域的圆形度进行标准化处理。2210.1二值图像中的基本概念10.1.6几何特征的测量4.圆形度对于圆形目标,圆形度取最大值,目标形状越复杂,圆形度值越小。因此圆形度可作为目标形状的复杂度或者粗糙程度的一种度量。2310.1二值图像中的基本概念10.1.6几何特征的测量5.矩形度与圆形度类似,矩形度是描述连通域与矩形相似的程度的量。矩形度的计算公式定义如下:其中,AS为连通域S的面积;AR是包围该连通域的最小矩形的面积。对于矩形目标,矩形度取最大值1,对细长而弯曲的目标,则矩形度的值变得很小。2410.1二值图像中的基本概念10.1.6几何特征的测量5.矩形度如下图,圆形连通域的面积为AS=21,包围该连通域的最小矩形面积为AR=5x5=25,则矩形度为ρR=21/25=0.84。对菱形连通域,前面已经计算得到其面积为AS=13,包围该连通域的最小矩形面积AR=5x5=25,则矩形度ρR=13/25=0.52。2510.1二值图像中的基本概念10.1.6几何特征的测量6.长宽比长宽比是将细长目标与近似矩形或圆形目标进行区分时采用的形状度量。长宽比的计算公式定义如下:其中,WA是包围连通域的最小矩形的宽度;LA是包围连通域的最小矩形的长度。前图中矩形连通域的长宽比ρWL=5/5=1。2610.2腐蚀与膨胀二值图像中的一种主要处理是对所提取的目标图形进行形态分析。而形态处理中最基本的是腐蚀与膨胀。腐蚀与膨胀是两个互为对偶的运算。腐蚀处理的作用是将目标图形收缩,而膨胀处理的作用是将目标图形扩大。为了实现腐蚀与膨胀,数学形态学提出了结构元素的概念。所谓结构元素是指具有某种确定形状的基本结构元素,例如,一定大小的矩形、圆或者菱形等。腐蚀处理可以表示成用结构元素对图像进行探测,找出图像中可以放下该结构元素的区域。膨胀处理可以理解成是对图像的补集进行腐蚀处理。2710.2腐蚀与膨胀腐蚀与膨胀属非线性逻辑模板非线性逻辑模板不能用简洁的数学形式表达。它实际上是对邻域内的象素分布模式进行分类后,根据不同的模式而给出不同处理。下面给出的各种算法都是针对二值图象的。处理中均使用3X3的模板(结构元素),并假定图中背景象素灰度值为0,景物象素值为1。有三种典型的非线性逻辑模板:①腐蚀②膨胀③抽取轮廓2810.2腐蚀与膨胀10.2.1腐蚀腐蚀处理是将图象轮廓向内收缩的一种处理方式。腐蚀处理的算法如下所述:1.若模板中心象素的灰度值为1,并且周围8个相邻点中至少有一个象素为0时,中心象素值改为0;2.除此之外,保留原中心象素值。腐蚀处理的结果见下图的示例。腐蚀2910.2腐蚀与膨胀10.2.1腐蚀3010.2腐蚀与膨胀10.2.1腐蚀腐蚀,通常在去除小颗粒噪声以及消除目标物之间的粘连是非常有效的。如下图,对原图进行两次腐蚀处理之后,不仅将原图中的小颗粒噪声去除,而且将原图中的几处(如原图左上角,右上角处)目标物之间的粘连消除了。3110.2腐蚀与膨胀10.2.2膨胀膨胀处理是将图象轮廓向外扩展的一种处理方式。膨胀可以用来填补目标区域中存在的某些空洞,以及消除包含在目标区域中的小颗粒噪声。它是腐蚀处理的对偶。膨胀处理的算法如下:1.若模板中心象素为0,且周围8个相邻点中至少有一个象素值为1,则改变中心象素为1;2.除此之外,保留原中心象素值。3210.3开运算与闭运算腐蚀处理可以将粘连的目标物分离,膨胀处理可以将断开的目标物接续。但同时都存在一个问题,即:经过腐蚀处理后,目标物的面积会减小;经过膨胀处理后,目标物的面积会增大;其形状与位置也可能会发生改变。为解决这个问题,提出了开运算与闭运算。3310.3开运算与闭运算10.3.1开运算(open)先腐蚀后膨胀称为开,见下图。开运算的作用:去除孤立的小点,毛刺和连通两块区域的小点,平滑较大物体的边界,而总的位置、形状和面积不变。3410.3开运算与闭运算10.3.2闭运算(close)先膨胀后腐蚀称为闭,见下图。闭运算的作用:填充目标内细小空洞,连接断开的邻近目标,平滑边界,而总的位置、形状和面积不变。3510.4轮廓抽取与轮廓跟踪10.4.1轮廓抽取用下述算法可以很简单地抽取二值图象的轮廓线。1.若中心象素值为0,不问其余8象素的值如何,一律保留中心象素值为0;2.若中心象素值为1,且其余8个象素全为1,则改变中心象素值为0;3.除此以外,全部将中心象素值设为1。3610.4轮廓抽取与轮廓跟踪10.4.2轮廓跟踪轮廓跟踪,顾名思义就是通过顺序找出边缘点来跟踪出边界。简单二值图象闭合边界的轮廓跟踪算法很简单:首先按从上到下,从左到右的顺序搜索,找到的第一个前景点一定是最左上方的边界点,记为A。它的右,右下,下,左下四个邻点中至少有一个是边界点,记为B。从开始B找起,按右,右上,上,左上,左,左下,下,右下的顺序找相邻点中的边界点C。如果C就是A点,则表明已经转了一圈,程序结束。否则从C点继续找,直到找到A为止。判断是不是边界点很容易:如果它的上下左右四个邻居都是前景点则不是边界点,否则是