《数字图像处理系统导论》课件第3章_第1页
《数字图像处理系统导论》课件第3章_第2页
《数字图像处理系统导论》课件第3章_第3页
《数字图像处理系统导论》课件第3章_第4页
《数字图像处理系统导论》课件第3章_第5页
已阅读5页,还剩114页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第三章数字图像特征提取与描述3.1图像的边缘检测

3.2基于Hough变换的直线提取

3.3图像的目标区域分割

3.4图像的局部特征提取

3.5图像描述

3.6小结习题

3.1图像的边缘检测

对人类视觉系统的研究表明,图像中的边界特别重要,往往仅凭一条粗略的轮廓线就能够识别出一个物体。这个事实为机器视觉的研究提供了重要启示,即物体可用其边界来表示,由图像灰度不连续点组成的基元图携带了原始图像的绝大部分有用信息。

数字图像的边缘检测是图像分割、目标区域的识别、区域形状提取等图像分析领域十分重要的基础,是图像识别中提取图像特征的一个重要属性。物体的边缘是以图像的局部特征不连续的形式出现的,例如灰度值的突变、颜色的突变等,同时物体的边缘也是不同区域的分界处。图像边缘有方向和幅度两个特性。3.1.1基本原理

如图3-1所示,第一排是一些具有边缘的图像示例,第二排是沿图像水平方向的一个剖面图,第三和第四排分别是剖面的一阶和二阶导数。

图3-1给出了3种常见的边缘剖面图:①阶梯状(如(a)和(b)所示);②脉冲状(如(c)所示);③屋顶状(如(d)所示)。阶梯状的边缘位于图像中两个具有不同灰度值的相邻区域之间,脉冲状主要对应于细条状的灰度值突变区域,屋顶状

边缘的上升沿和下降沿都比较缓慢。边缘检测的实质就是采用某种算法来提取图像中对象与背景间的交界线。由于边缘是灰度发生空间突变的像素的集合,是由灰度值不连续造成的结果,所以可以利用求导数方便地检测到。图3-1边缘和导数图3-2给出了原始图像与边缘提取结果图。一般情况下,边缘检测算法分为如下四个步骤:

(1)滤波。边缘检测算法主要基于图像强度的一阶和二阶导数,但导数的计算对噪声很敏感,因此必须使用滤波器来改善与噪声有关的边缘检测器的性能。需要指出的是,大多数滤波器在降低噪声的同时也导致了边缘强度的损失,因此,增强边缘和降低噪声之间需要折中。

(2)增强。增强边缘的基础是确定图像各点邻域强度的变化值。增强算法可以将邻域(或局部)强度值有显著变化的点突显出来。边缘增强一般是通过计算梯度幅值来完成的。

(3)检测。在图像中有许多点的梯度幅值比较大,而这些点并不都是边缘,所以应该用某种方法来确定哪些点是边缘点。最简单的边缘检测判据是梯度幅值阈值判据。

(4)定位。如果某一应用场合要求确定边缘位置,则边缘的位置可在子像素分辨率上来估计,边缘的方位也可以被估计出来。图3-2边缘提取3.1.2梯度算子

许多边缘检测都是亮度的一阶导数,这样就得到了原始数据亮度的梯度。梯度定义为向量

梯度有两个重要性质:

(1)向量G(x,y)的方向就是函数f(x,y)增大时的最大变化率方向;

(2)通常用绝对值来近似梯度幅值:

|G(x,y)|=|Gx|+|Gy| (3-2)(3-1)由向量分析可知,梯度的方向定义为

其中,α是相对于x轴的角度。

常用区域模板卷积来近似计算偏导数。对Gx和Gy各用一个模板,所以需要两个模板组合起来以构成一个梯度算子。根据模板的大小及其中元素值的不同,人们已经提出了许多不同的算子。图3-3列出了几种常用的梯度算子模板。最简单的是Roberts算子,其两个2×2模板如图3-3(a)所示。比较常用的还有Prewitt和Sobel算子,它们都用两个3×3的模板,分别如图3-3(b)和(c)所示。(3-3)图3-3几种常用的梯度算子模板算子运算时采用的是类似卷积的方式,将模板在图像上移动,并在每个位置计算中心像素的梯度值,所以一幅灰度图求梯度所得的结果是一幅梯度图。图3-4所示为梯度边缘检测结果。图3-4梯度边缘检测结果3.1.3拉普拉斯算子

对于陡峭的边缘和缓慢变化的边缘,一般边缘检测技术很难确定其边缘线的位置,但拉普拉斯算子却可用二次微分正峰和负峰之间的过零点来确定。

在理想的连续变化情况下,在二阶导数中检测过零点将得到梯度中的局部最大值。基于二阶导数操作的边缘检测算法,实质上是计算亮度梯度的变化率。另一方面,二阶导数中的峰值检测是边线检测,在边线两边看到的是相反的梯度。为了找到边缘,在图像亮度梯度的二阶导数中寻找过零点。

二维图像函数f(x,y)的拉普拉斯变换是各向同性的二阶导数,具有旋转不变性。定义为

为了更适合于数字图像处理,将该方程表示为离散形式:

在数字图像中,计算函数的拉普拉斯值也可借助各种模板来实现。对模板的基本要求是对应中心像素是正的,而对应中心像素邻近像素的系数是负的,且它们的和应该是零。常用的两种模板分别如图3-5(a)和(b)所示。(3-4)(3-5)图3-5拉普拉斯算子的模板图3-6给出了一个用拉普拉斯进行边缘检测的结果。

图3-6(a)所示是一幅含有字母S的二值图,图3-6(b)所示是用图3-5(a)的模板与图3-6(a)卷积得到的结果。其中黑色对应最大负值,白色对应最大正值,灰色对应零值。由此可看出,拉普拉斯算子检测会产生双像素宽的边缘。如果将所有负值都置为黑,正值都置为白,就得到了图3-6(c),其中白色表示真正的边界。拉普拉斯算子的运算结果是标量,只有幅值,只使用一个模板便可计算得到,方向属性丢失。图3-6拉普拉斯边缘检测结果3.1.4

LoG算子

同梯度算子一样,利用图像强度二阶导数的零交叉点来求边缘点的算法对噪声十分敏感。实际中几乎不单独使用拉普拉斯算子,通常配合滤波器同时使用。

Marr和Hildreth将高斯滤波和拉普拉斯边缘检测结合在一起,形成LoG(LaplacianofGaussian,LoG)算法,也称之为拉普拉斯-高斯算法。

LoG边缘检测器的基本特征是:

(1)平滑滤波器是高斯滤波器;

(2)增强步骤采用二阶导数(二维拉普拉斯函数);

(3)边缘检测判据是二阶导数零交叉点,并对应一阶导数的较大峰值;

(4)使用线性内插方法在亚像素水平上估计边缘的位置。

LoG算子的输出h(x,y)是通过卷积运算得到的,即

根据卷积求导法有

其中(3-6)(3-7)如图3-7所示,LoG因其形状,也称为墨西哥草帽(Mexicanhat)算子,求和为0,即对平坦图像区域的响应为0,而分两步实现LoG,可以提供更大的灵活性和更小的模板尺寸。高斯平滑运算导致图像边缘和其他尖锐不连续部分的模糊,其中模糊量取决于σ的值。σ值越大,噪声滤波效果越好,但同时也丢失了重要的边缘信息,影响了边缘检测器的性能。图3-7

LoG算子

滤波(通常是平滑)、增强、检测这三个边缘检测步骤对使用LoG边缘检测仍然成立。其中,平滑是用高斯滤波器来完成的,增强是将边缘转换成零交叉点来实现的,而边缘检测则是通过检测零交叉点来进行的。直接实现LoG算法的典型模板如图3-8所示。图3-8

5×5拉普拉斯-高斯模板在上述方法中,边缘是在特定的分辨下得到的。为了从图像中得到真正的边缘,有必要把那些通过不同尺度算子得到的信息组合起来。使用多尺度滤波模板,并在滤波器的不同尺度上分析边缘特性的方法仍在研究中。这些方法的基本思想是,通过使用大尺度滤波模板产生鲁棒边缘和使用小尺度滤波模板产生精确定位边缘的特性。

图3-9为LoG算子检测结果。图3-9

LoG算子检测结果3.1.5

Canny边缘检测

好的边缘检测算法,一般能有效地抑制噪声及精确地确定边缘的位置,并且能够提取到连续、完整的边缘。如何减少假边缘,从而提取到完整、连续的边缘,达到视觉的一致性呢?Canny算法将解决这个问题。

JohnCanny于1986年提出Canny算子,Canny算子使用二维高斯函数的一阶偏导数作为滤波器,先对图像进行平滑,然后再求梯度。在边缘垂直方向上寻找局部最大值,通过采用高低两个阈值得到更准确的边缘。Canny算子属于具有平滑功能的一阶微分算子,能够较好地解决检测精度与抗噪声间的矛盾。

Canny算子的算法步骤如下:

(1)用高斯滤波器平滑图像;

(2)用一阶偏导的有限差分来计算梯度的幅值和方向;

(3)对梯度幅值进行非极大值抑制;

(4)用双阈值算法检测和连接边缘。

Canny算子的具体计算步骤如下:

(1)用高斯函数平滑图像,并求x,y方向的梯度Ex、Ey。令

S(x,y)=G(x,y)*f(x,y)

其中 为二维高斯函数,则Ex、Ey如下式所示。

实际应用中,通常用一阶有限差分近似式来计算,即(3-9)(3-8)

(2)计算梯度的幅值M(x,y)和方向q(x,y),如下式所示:

(3)对梯度幅值进行非极大值抑制(Non-MaximaSuppression,NMS)。非极大值抑制是指通过抑制梯度线上所有非屋脊(Non-Ridge)值来细化M(x,y)中的梯度屋脊值(Ridge)。(3-10)非极大值抑制首先将梯度角q(x,y)的变化范围缩减到四个方向扇区之一,如图3-10所示,缩减后扇区值e(x,y)=sectorq(x,y),用标号0~3表示。使用一个3×3模板作用于幅值阵列M(x,y)的所有点,对在每一点上邻域的中心像素与沿着梯度线的两个元素进行比较,其中梯度线是由邻域中心点处的扇区值e(x,y)给出的。如果在邻域中心点处的幅值M(x,y)不比沿梯度线方向上的两个相邻点幅值大,则M(x,y)=0。经过非极大值抑制后,宽屋脊带细化成一个像素点宽,并保留了屋脊的高度值。图3-10非最大值抑制的梯度方向划分示意图

(4)阈值化和边缘连接。设N(x,y)为经过非极大值抑制后的梯度幅值。尽管在边缘检测的第一步对图像进行了平

滑,但非极大值抑制幅值图像仍会包含许多由噪声和细纹理引起的假边缘段。减少假边缘的典型方法是对N(x,y)使用一个阈值,将低于阈值的所有值赋为零值。但是阈值化后得到的边缘阵列仍然有假边缘存在,这是因为阈值t太低以及阴影的存在,使得边缘对比度减弱,或阈值t太高而导致部分轮廓丢失。为了解决这个问题,Canny提出了双阈值方法,即N(x,y)对分别使用低、高阈值t1和t2进行分割,得到两个阈值边缘图像T1(x,y)和T2(x,y)。T2(x,y)为使用高阈值得到的,因此T2(x,y)一定是边缘,但边缘可能间断。双阈值法是在T2(x,y)中跟踪边缘,当到达端点时便在T1(x,y)的8邻域中寻找可以连接到轮廓上的边缘,从而将T2(x,y)的边缘连接起来。图3-11所示为Canny边缘检测。图3-11

Canny边缘检测 3.2基于Hough变换的直线提取

3.2.1基本原理

下面以Hough变换检测直线为例,进一步说明Hough变换的基本原理。

Hough变换检测直线的基本思想是点-线的对偶性(duality)。如图3-12所示,在图像空间xy里,所有经过点(x,y)的直线都满足方程:

y=px+q

(3-11)

其中p为斜率,q为截距。对上式等价变换,得到

q=-px+y

(3-12)

上式可认为代表参数空间PQ中过点(p,q)的一条直线。图3-12图像空间与参数空间中点和线的对偶性因此,在图像空间中共线的点对应在参数空间里相交的线。反过来,在参数空间中相交于同一个点的所有直线在图像空间里都有共线的点与之对应。Hough变换就是根据此关系将图像空间中的检测问题转换到参数空间,通过在参数空间进行简单的累加统计进行检测。

运用式(3-4)的直线方程时,如果直线接近竖直方向,会由于p和q的值都接近无穷大而使计算量大增。针对斜率-截距变换函数的这一局限,1972年,Duda和Hart将极坐标引入

Hough变换,采用直线的极坐标方程(如下式所示)极坐标表示如图3-13所示。

r=xcosq+ysinq

(3-13)图3-13直线的极坐标表示

根据这个方程,图像空间中的点对应参数空间rq中的一条正弦曲线,即点-直线对偶性变成了点-正弦曲线对偶性,且无论直线如何变化,q和r的取值范围都是有限区域,如图3-14所示。图3-14图像空间中的点和其在参数空间里对应的正弦曲线3.2.2

Hough变换实现方法

工程中的实验数据和图像处理中的二值边缘图通常都是离散数据,因此,根据Hough变换的性质,可按下列步骤实现Hough变换:

(1)将参数空间量化成m×n(m为r的等份数,n为q的等份数)个单元;

(2)给参数空间中的每个单元分配一个累加器Q(i,j),并把累加器的初始值置为零;

(3)取出直角坐标系中的点(x1,y1)代入计算式,并以量化的q值计算出r;

(4)在参数空间中,找r和q对应单元,将该累加器加1,即Q(i,j)=Q(i,j)+1;

(5)当直角坐标系中的点都经过步骤(3)和(4)遍历后,检验参数空间中每个累加器的值,累加器最大的单元所对应的r和q即为直角坐标系中直线方程式的参数。

当直角坐标系中的点分布在R条直线附近时,可在步骤(5)检测累加器时,取出累加器中前R个值最大的单元所对应的rk和qk(k=1,2,…,R),以rk和qk为直角坐标系中直线方程式的参数,即可同时实现多条直线的检测。3.2.3

Hough变换推广

Hough变换以其对局部缺损的不敏感、对随机噪声的鲁棒性,以及适于并行处理、实时应用等特性,备受图像处理、模式识别和计算机视觉领域学者的青睐。Hough变换不仅可以用来检测直线,还可以检测圆、椭圆、双曲线、抛物线等有固定解析式的曲线。同时,Hough变换也可以检测任意形状的曲线。

Hough变换可以检测任意的已知表达形式的曲线,关键在其参数空间的选择,参数空间的选择可以根据它的表达形式而定。当检测某一半径的圆时,可以选择与原图像空间同样的空间作为参数空间。我们可以取和图像平面一样的参数平面,以图像上每一个前景点为圆心,以已知半径在参数平面上画圆,并把结果进行累加。最后找出参数平面上的峰值点,这个位置就对应了图像上的圆心。在这个问题中,图像平面上的每一点对应参数平面上的一个圆。所以,将原图像空间中的所有点变换到参数空间后,根据参数空间中点的聚集程度就可以判断出图像空间中有没有近似于圆的图形。

关于如何进行未知半径的圆的检测,我们前面提到过,图像边缘除了位置信息,还有方向信息也很重要。根据圆的性质,圆的半径一定在垂直于圆的切线的直线上,也就是说,在圆上任意一点的法线上。因此,为解决上面的问题,我们仍采用二维的参数空间,对于图像上的每一前景点,加上它的方向信息,都可以确定出一条直线,圆的圆心就在这条直线上。这样,问题就简单了许多。 3.3图像的目标区域分割

随着数码相机、扫描仪等设备的普及,越来越多的人开始乐于对自己手中的照片进行各种各样的“特殊处理”,都需要用到抠图。什么叫抠图?顾名思义,所谓抠图,就是从一幅图片中将某一部分截取出来,和另外的背景进行合成。这就是我们将要讨论的图像的目标分割技术。

图像分割就是把图像分成若干个特定的、具有独特性质的区域并提取出感兴趣目标的技术和过程。它是由图像处理到图像分析的关键步骤。也可以理解为将图像中有意义的特征区域或者需要应用的特征区域提取出来,这些特征区域可以是像素的灰度值、物体轮廓曲线、纹理特性等,也可以是空间频谱或直方图特征等。图3-15所示为目标分割示例。图3-15目标分割示例目前,图像分割方法很多,可以分为相似性分割和非连续性分割。相似性分割就是将具有同一灰度级或相同组织结构的像素聚集在一起,形成图像的不同区域;非连续性分割就是首先检测局部不连续性,然后将它们连接在一起形成边界,这些边界将图像分成不同的区域。

图像分割方法又可分为结构分割方法和非结构分割方法两大类。结构分割方法是根据图像的局部区域像素的特征来实现图像分割的,如阈值分割、区域生长、边缘检测、纹理分析等,这些方法假定事先知道这些区域的特性,从而能够寻找各种形态或研究各像素群。非结构分割法包括统计模式识别、神经网络方法或其他利用景物的先验知识实现的方法等。

3.3.1阈值图像分割

阈值分割法是一种基于区域的图像分割技术,其基本原理是通过设定不同的特征阈值,把图像像素点分为若干类。设原始图像为f(x,y),按照一定的准则在f(x,y)中找到特征值T,将图像分割为两个部分,如图3-16所示。常用的特征包括:直接来自原始图像的灰度或彩色特征;由原始灰度或彩色值变换得到的特征。图3-16直方图及T值选取根据图像背景不同,利用阈值T分割后的图像可定义为以下两种:

(1)从暗的背景上分割出亮的物体,即

(2)从亮的背景上分割出暗的物体,即

图3-17为单阈值分割结果。(3-15)(3-14)图3-17单阈值分割结果更一般的多个阈值的情况为

可通过试探的方法选取阈值,直到阈值化后的图像的效果达到最佳为止。首先,根据图像中物体的灰度分布情况,选取一个近似阈值作为初始阈值,可以将图像的灰度均值作为初始阈值。然后,通过分割图像和修改阈值的迭代过程来获得最佳阈值。最后,以T作为最终阈值对输入图像进行阈值分割。(3-16)计算步骤如下:

(1)计算输入图像的直方图;

(2)计算图像的灰度最大值Imax和灰度最小值Imin,令

T1=(Imax+Imin)/2;

(3)以T1作为初始阈值,将直方图分为两部分,分别计算各部分的灰度加权平均值Imean1和Imean2,并令T2=(Imean1+Imean2)/2;

(4)如果T1=T2,则令T=T1作为最终阈值,否则令T1=T2,重复第(3)步。3.3.2基于区域的分割

区域分割的目标是将区域R划分为若干个子区域R1,R2,…,Rn,且满足5个条件:

(1)完备性,即 ;

(2)连通性,即每个Ri都是一个连通区域;

(3)独立性,即对于任意i≠j,Ri∩Rj=Ф;

(4)单一性,比如每个区域内的灰度级相等,P(Ri)=TRUE,i=1,2,…,n;

(5)互斥性,比如任意两个区域的灰度级不等,P(Ri∪Rj)=FALSE,i≠j。

1.区域生长算法

区域生长算法的实现步骤如下:

(1)根据图像的不同应用选择一个或一组种子,它或者是最亮或最暗的点,或者是位于点簇中心的点。

(2)选择一个描述符(条件)。

(3)从该种子开始向外扩张时,首先把种子像素加入结果集合,然后不断将与集合中各个像素连通,且满足描述符的像素加入集合,如图3-18所示。上一过程进行到不再有满足条件的新结点加入集合为止。图3-18区域生长算法

2.区域分裂-合并算法

区域分裂-合并算法的基本思想是,先确定一个分裂合并的准则,即区域特征一致性的测度,当图像中某个区域的特征不一致时就将该区域分裂成4个相等的子区域,当相邻的子区域满足一致性特征时就将它们合成一个大区域,直至所有区域不再满足分裂合并的条件为止。当分裂到不能再分裂的情况时,分裂结束,然后查找相邻区域有没有相似的特征。如果有,就将相似区域进行合并,最后达到分割的作用。

如果把整幅图像分成大小相同的4个方形象限区域,并接着把得到的新区域进一步分成大小相同的4个更小的象限区域,如此不断继续分割下去,就会得到一个以该图像为树根,以分成的新区域或更小区域为中间结点或树叶结点的四叉树,如图3-19所示。图3-19图像的四叉树表示分裂-合并分割法是从整个图像出发,根据图像和各区域的不均匀性,把图像或区域分裂成新的子区域,再根据毗邻区域的均匀性,把毗邻的子区域合并成新的较大区域。下面给出灰度图像的一些分裂-合并准则:

(1)同一区域中最大灰度值与最小灰度值之差或方差小于某选定的阈值;

(2)两个区域的平均灰度值之差及方差小于某个选定的阈值;

(3)两个区域的灰度分布函数之差小于某个选定的阈值;

(4)两个区域的某种图像统计特征值的差不大于某个阈值。

图3-20为分裂-合并示意图。图3-20分裂-合并示意图

在一定程度上,区域生长算法和区域分裂-合并算法有异曲同工之妙,它们互相促进,相辅相成。区域分裂到极致就是分割成单一像素点,然后按照一定的测量准则进行合并,在一定程度上可以认为是单一像素点的区域生长方法。区域生长比区域分裂-合并的方法节省了分裂的过程,而区域分裂-合并的方法可以在较大的一个相似区域基础上再进行相似合并,而区域生长只能从单一像素点出发进行生长(合并)。3.3.3分水岭分割算法

基于数学形态理论的分水岭(watershed)算法被广泛使用,它又称为水线算法,其基本过程是连续腐蚀二值图像,由图像简化、标记提取、决策、后处理四个阶段构成。分水岭变换是图像分割中的一种经典有效的方法,它与经典的边缘检测算法相比,计算精度高,可有效地生成封闭的单像素轮廓,它以快速、有效、准确的分割结果越来越得到人们的重视。

分水岭算法的基本原理是把灰度图像看做测地学上的地形表面,图像中每个像素的灰度值代表该点的海拔高度,图像中每一个局部极小值及其影响区域被称为集水分盆,而集水分盆的边界则形成分水岭。分水岭的一种计算方法是模拟浸水过程。假设把一幅图像视为跌宕起伏的地形曲面,图像中每个像素的灰度值对应于地形中的高度,代表了该点在地形中的海拔。在这样的地形中,有盆地(图像中的局部极小区域)、山脊(分水岭)以及盆地和山脊之间的山坡。首先把这个有盆地也有山脊的地形模型垂直浸入湖水中,然后在各个盆地的最低处刺上洞,图像的局部极小值点先进水,水逐渐浸入整个集水盆地。当水位达到盆地的边缘高度时水将溢出,这时在水溢出处建立堤坝。如此,直到整个图像沉入水中,所建立的堤坝就成为分开盆地的分水岭。从而可以得到各个堤坝(分水岭)和一个个被堤坝分开的盆地(目标物体),从而达到目标分割的目的,如图3-21所示。图3-21分水岭分割算法基于上述浸没模拟,人们提出了许多分水岭计算方法,比较经典的是VincentL提出的。在该算法中,分水岭计算分为两个步骤,一个是排序,另一个是淹没。首先按像素灰度值的升序排列像素,然后升序实现淹没过程,并利用一个先进先出的数据结构,即循环队列来扩展标记过的聚水盆地。通过一定的规则,分配分水岭标记,最终得到准确的结果。

3.3.4

LazySnapping分割

微软抠图软件LazySnapping对于大多数的抠图要求,可以在简单的三步之内完成,它的技术基础是GraphCut。GraphCut技术是图论中的一个概念,也是LazySnapping这款软件的核心技术。在软件的第一步和第二步操作中,对前景的轮廓计算和对细节部分进行修补的操作,都是基于该技术进行的。首先,当一张图被导入到LazySnapping中时,采用水线(watershed)算法对该图进行处理。通过这些水线,软件就可以把图片分为大小不等的若干“碎片”。我们注意到,每一个区域中的颜色基本上都是相同的。

通过划线,告诉计算机哪些是我们想要的前景,而哪些是我们不想要的背景。如果从像素点的角度来看,一旦我们在图像上画了一条线,则这条线经过的像素点就被我们称为种子点,这些种子点所涉及的区域,则被称为种子区域。接下来,我们就需要借助这些种子区域将图片分为前景区域和背景区域两大块。利用GraphCut优化算法,图片上所有区域会被赋予唯一的属性,不属于前景区域就一定会属于背景区域。在经过水线处理后的图片中,可以把相邻的区域连接在一起。而GraphCut优化算法就是尝试将每个非种子区域分别与前景区域(或背景区域)之间的通路“打断”。如果全部通路都可以被打断,则软件猜测该区域不属于前景区域,反之则可能属于。这样,经过运算,软件就可以将图形分为前景区域和背景区域两大部分了,也就将我们所需要的前景的大致轮廓勾勒了出来。

GraphCut优化准则考虑了每一个区域与种子区域之间颜色的相似性,颜色越像前景区域就越可能被分在前景。同时它也考虑了相邻区域的颜色差别,颜色差别越大,这两个区域越可能被分开。这个优化问题可以用图论中极大流(极小割)的方法很快解决。

对于一张结构较为简单的图形来说,如果其前景和背景的对比非常明显,且前景的形状较为简单,则经过前面的处理后,前景图形就已经被“抠”出来了。不过,如果图片的内容较为复杂,且前景和背景之间的对比度不是很明显,则需要对图片作进一步的微调。 3.4图像的局部特征提取

3.4.1角点特征提取

角点的直观定义是指在至少两个方向上图像灰度变化均较大的点。在实际图像中,轮廓的拐角、线段的末端等都是角点。角点特征因具有信息量丰富、便于测量和表示、能够适应环境光照变化等优点而成为许多特征匹配算法的首选。角点检测算法最常见的是Moravec角点检测算法和Harris角点检测算法。

1.Moravec角点检测算法

Moravec在1981年提出Moravec角点检测算子,并将它应用于立体匹配。首先,计算每个像素点的兴趣值,即以该像素点为中心,取一个w×w(如5×5)的方形窗口,计算0°、45°、90°、135°四个方向灰度差的平方和,取其中的最小值作为该像素点的兴趣值。写成数学表达式:

其次,根据实际图像设定一个阈值,遍历图像以兴趣值大于该阈值的点为候选点。最后,选一个一定大小的滑动窗口,让该窗口遍历灰度图像,在此过程中取窗口中兴趣值最大

的候选点为特征点,算法结束。

图3-22为Moravec角点检测算子对简单图像的响应。(3-17)图3-22

Moravec角点检测算子对简单图像的响应

Moravec角点检测方法相对简单,计算量很小。Moravec角点检测算子对斜边缘的响应很强,因为只考虑了每隔45°的方向变化,而没有在全部方向上进行考虑。同时,由于窗口函数是一个二值函数,不管像素点离中心点的距离为多少,均赋于一样的权重,因此对噪声响应也较强,最终对角点的定位也不是很准确。

2.Harris角点检测算法

C.Harris和M.J.Stephens于1988年在Moravec算子的基础上进行了改进,提出了Harris角点检测算法。Harris算子用高斯函数代替二值窗口函数,对离中心点越近的像素赋于越大的权重,以减少噪声影响。Moravec算子只考虑了每隔45°方向,Harris采用了一种新的角点判定方法,算子用Taylor展开去近似任意方向。以点(x,y)为中心的邻域内,计算矩阵M,写成矩阵形式,即

式中:Ix为x方向的差分;Iy为y方向的差分;w(x,y)为高斯函数。

矩阵M的两个特征向量I1和I2与矩阵M的主曲率成正比,如果两个曲率值都高,那么就认为该点是特征点。Harris利用λ1、λ2来表征变化最快和最慢的两个方向。若两个都很大则就是角点,一个大一个小就是边缘,两个都小就是在变化缓慢的图像区域,如图3-23所示。(3-18)图3-23不同点λ1和λ2值的变化矩阵特征值的求解过程运算量大,为了提高Harris角点检测的效率,实际计算时并不直接计算特征值,而是根据矩阵对角线元素和行列式之间的关系来进行判断。两个特征值的和等于矩阵M的迹(trace),两个特征值的积等于矩阵M的行列式。所以用下式来判定角点质量。

R=det(M)-k·trace2(M)

(3-19)

式中:k常取0.04~0.06。

Harris角点检测算法的步骤总结如下:

(1)对每一像素点计算相关矩阵M。(3-20)

(2)计算每像素点的Harris角点响应,即

R=(AB-CD)2-k(A+B)2

(3)在w×w范围内寻找极大值点,若Harris角点响应大于阈值,则视为角点。

图3-24为Harris算子对灰度图像的响应。

Harris算子对灰度的平移是不变的,因为只有差分,对旋转也有不变性,但是对尺度很敏感,在一个尺度下是角点,在另一个尺度下可能就不是了,如图3-25所示。

Harris算子是一种有效的点特征提取算子,其优点总结如下:①计算简单。Harris算子中只用到灰度的一阶差分以及滤波,操作简单。

②提取的点特征均匀而且合理。Harris算子对图像中的

每个点都计算其兴趣值,然后在邻域中选择最优点。

③稳定。Harris算子的计算公式中只涉及一阶导数,因此对图像旋转、灰度变化、噪声影响和视点变换不敏感,它也是比较稳定的一种点特征提取算子。

Harris算子的局限性有:

①对尺度很敏感,不具有尺度不变性。

②提取的角点是像素级的,精度受限。图3-24

Harris算子对灰度图像的响应图3-25

Harris算子对尺度的敏感性3.4.2

SIFT算子

Harris角点检测器对于图像尺度变化非常敏感,这在很大程度上限制了它的应用范围。David.Lowe于2004年提出了一种对图像平移、旋转、缩放、甚至仿射变换保持不变性的图像局部特征,以及基于该特征的描述符,并将这种方法命名为尺度不变特征变换(ScaleInvariantFeatureTransform,SIFT),简称SIFT算法。

1.SIFT算子原理

SIFT算法首先在尺度空间进行特征检测,确定特征点的位置和特征点尺度,然后使用特征点邻域梯度的主方向作为该特征点的方向特征,以实现算子对尺度和方向的无关性。

2.特征提取

为了使特征具有尺度不变性,SIFT特征点的检测是在多尺度空间完成的。一幅二维图像的尺度空间定义为

L(x,y,σ)=G(x,y,σ)*I(x,y)

(3-21)

其中

式中:*表示卷积;(x,y)代表图像的像素位置;σ是尺度空间因子。

David.Lowe等人为了更加高效地在尺度空间检测到稳定的特征点,于1999年提出利用不同尺度的高斯差分方程与图像进行卷积,求取尺度空间极值的方法,即(3-22)

其中,k是常数,此处取 。

图3-26中展示了构造D(x,y,σ)的一种有效方法。首先采用不同尺度因子的高斯核对图像进行卷积,以得到图像的不同尺度空间,将这一组图像作为金子塔图像的第一层。接着对第一层图像中的2倍尺度图像(相对于该层第一幅图像的2倍尺度)以2倍像素距离进行下采样,得到金子塔图像第二层中的第一幅图像,并对该图像采用不同尺度因子的高斯核进行卷积,以获得金字塔图像第二层中的一组图像。依次类推,从而获得了金字塔图像每一层中的一组图像,再将得到的每一层相邻的高斯图像相减,就得到了高斯差分(

DifferenceofGaussian,DoG)图像。(3-23)图3-26高斯金字塔中相邻尺度两幅高斯图像相减得到DoG尺度空间图像为了寻找尺度空间的极值点,如图3-27中标记为“×”号的中间的检测点需要和它同尺度的8个相邻点以及上下相邻尺度对应的9×2个点,共26个点进行比较,以确保在尺度空间和二维图像空间都检测到局部极值。

因为DoG算子会产生较强的边缘响应,所以需要剔除不稳定的边缘响应点。

直角特征是很好的特征点,所以我们想得到直角特征,如果特征点的两个方向的梯度值都很大,那么就让它通过,否则就拒绝它。这可以通过Hessian矩阵实现。使用这个矩阵我们可以很容易地检测它是不是直角特征。获取特征点处的Hessian矩阵,即(3-24)图3-27

DoG图像中的极值点检测在SIFT算法中,不需要像HarrisCorner检测算法那样直接计算Hessian矩阵的两个特征值,而只需要计算两个特征值的积与和的比率,若H的特征值为a和b,则

Tr(H)表示矩阵H对角线元素之和,D(H)表示矩阵H的行列式。假设a是较大的特征值,而b是较小的特征值,令a=rb,则(3-26)(3-25)上式的值在两个特征值相等时最小,随着r的增大而增大。值越大,说明两个特征值的比值越大,即在某一个方向的梯度值越大,而在另一个方向的梯度值越小,而边缘恰恰就

是这种情况。所以为了剔除边缘响应点,需要让该比值小于一定的阈值,在Lowe的文章中,取r=10。

3.特征描述

利用特征点邻域像素的梯度及方向分布的特性,可以得到梯度模值和方向角如下:(3-27)其中尺度L为每个关键点各自所在的尺度。在以特征点为中心的邻域窗口内采样,用直方图统计邻域像素的梯度方向。梯度直方图的范围是0~360°,其中每10°一个方向,总共36个方向。如图3-28所示,该示例中给出了8方向的方向直方图计算结果。图3-28特征点方向的分配

以直方图中最大值作为该特征点的主方向。保留峰值大于主方向峰值80%的方向作为该特征点的辅方向。

通过以上步骤,对于每一个特征点,拥有三个信息:位置、尺度以及方向。图3-29说明了特征点描述符的计算过程。图中的中心点表示当前特征点的位置,圆代表高斯加权的范围(越靠近关键点,权值越大)。图3-29特征点描述符的表示图3-29(b)是生成的特征点描述符。对于每一个方向直方图分配8个方向,箭头的长度对应于该方向上所有梯度的总和。图3-29(b)所示的描述符是一个2×2的方向直方图数组。然而,Lowe建议取4×4的数组效果最好,即取以特征点为中心的16×16像素大小的邻域,将此邻域均匀地分为4×4个子区域(每个子区域大小为4×4个像素),对每个子区域计算梯度方向直方图(直方图均匀分为8个方向)。然后,对4×4个子区域的8方向梯度直方图根据位置依次排序,这样就构成了一个4×4×8=128维的特征向量,该向量就作为SIFT特征的描述符。此时SIFT特征向量已经去除了尺度变化、旋转等几何变形因素的影响,再继续将特征向量归一化,则可以进一步去除光照变化的影响。

图3-30中共有107个特征点匹配。利用SIFT算法从图像中提取出的特征可用于同一个物体或场景的可靠匹配,对图像尺度和旋转具有不变性,对光照变化、噪声以及仿射变换都具有很好的鲁棒性。此外,这种图像的局部特征有很高的独特性,因此可以以很高的概率正确匹配。图3-30共有107个特征点匹配 3.5图像描述

3.5.1边界描述

在数字图像中,边界是由一系列离散的像素点组成的,其最简单的表示方法是由美国学者Freeman提出的链码方法。链码实质上是一串指向符的序列,有4向链码、8向链码等。在8向链码中,链码沿着数字曲线或边界像素以8邻接的方式移动并进行编码。边界链码从一个任意选择的边界点开始,这个点有八个邻接点,其中至少有一个是边界点。边界链码为从当前点到下一个边界点的相邻方向编码,八个相邻方向可以用0~7来表示,如图3-31所示。图3-31链码链码利用一系列具有特定长度和方向的相连的直线段来描述目标边界,每个线段长度固定而方向数有限,所以只需确定起点的绝对坐标,其余点都可以只用连续方向来代表偏移量。如图3-32所示。图3-32曲线链码

区域的面积和角点可由链码直接得到。曲线的链码是6022222021013444444454577012。链码的微分,也称差分码,由原码的一阶差分求得。链码差分是关于旋转不变的边界描述方法,其差分链码是220000627712100000017120111。

对边界的离散傅里叶变换表达,可以作为定量描述边界形状的基础。采用傅里叶描述的一个优点是将二维的问题简化为一维问题。图3-33给出了边界点的两种表示方法。图3-33边界点的两种表示方法

3.5.2区域描述

下面给出区域描述相关的物理概念或计算公式。

1.图像的熵

图像的熵表示为图像灰度级集合的比特平均数,单位为比特/像素,也描述了图像信源的平均信息量。(3-28)

2.位置

用目标面积的中心点作为目标的位置,可用下式计算位置坐标:(3-29)(3-30)质心形心

3.区域周长

区域的周长及边界长度,可用以下三种方式计算:

(1)区域和背景交界线(接缝)的长度;

(2)区域边界8链码的长度;

(3)边界点数之和。

4.圆形度

圆形度是描述连通域与圆形相似程度的量。根据圆周长与圆面积的计算公式,定义圆形度的计算公式如下:

式中:As为连通域S的面积;Ls为连通域S的周长。圆形度

rc值越大,表明目标与圆形的相似度越高。(3-31)

5.方向

定义为最小惯量轴(主轴)的方向。最小惯量轴是指在目标物上找一条使下式定义的值最小的直线:

式中:rxy是点(x,y)到直线的距离。(3-32)

6.不变矩

矩是描述图像特征的算子,常见的矩描述子可以分为几何矩、正交矩、复数矩和旋转矩。其中,几何矩提出的时间最早且形式简单,对它的研究最为充分。几何矩对简单图像

有一定的描述能力,它虽然在区分度上不如其他三种矩,但与其他几种算子比较起来,它极其简单,一般只需用一个数字就可表达。所以,一般我们是用来做大粒度的区分。

对于二维连续函数f(x,y),(j+k)阶矩定义为(3-33)中心矩定义为

若f(x,y)为数字图像,则上式变为

归一化的中心矩定义为(3-34)(3-35)(3-36)

1962年Hute提出Hu不变矩,利用归一化的中心矩,可以获得对平移、缩放、镜像和旋转都不敏感的不变矩。但它只适用于相似变换,不适用于仿射变换。Hu最初用以下7个不变矩公式定义:

但实际上,大部分文献都采用以下6个无量纲、消误差的组合不变矩:

低阶矩描述图像的整体特征:零阶矩反映目标的面积,一阶矩反映目标的质心位置,二阶矩反映目标的主轴、辅轴的长短和主轴的方向角。高阶矩主要描述图像的细节(如

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论