一种基于LBP和链码技术的图像分割方法与流程

文档序号:18200466发布日期:2019-07-17 06:08阅读:406来源:国知局
一种基于LBP和链码技术的图像分割方法与流程

本发明涉及图像处理、图像分割、特征处理等技术领域,具体为一种基于lbp和链码技术的图像分割方法。



背景技术:

图像分割(imagesegmentation)技术是计算机视觉领域的各个重要的研究方向,是图像语义理解的重要一环。图像分割是指将图像分成若干具有相似性质的区域的过程,从数学角度来看,图像分割是将图像划分成互不相交的区域的过程。近些年来随着深度学习技术的逐步深入,图像分割技术有了突飞猛进的发展,该技术相关的场景物体分割、人体前、背景分割、人脸人体parsing、三维重建等技术已经在无人驾驶、增强现实、安防监控等行业都得到广泛的应用。

图像分割是图像处理领域中的关键问题之一,是中层视觉中的最基本问题,也是国际学术界公认的将会长期存在的最困难的问题之一,尽管它一直受到科研人员的重视,虽然研究人员已经提出了大量的分割方法,但是它还是发展很慢,被认为是图像处理学科的一个瓶颈。图像分割不止是一个图像特征提取问题,还涉及到各种图像特征的组织结构,分割的难点在于实际应用中图像内容复杂多变,无法用通用的模型来描述。

所谓图像分割是指根据灰度、彩色、空间纹理、几何形状等特征把图像划分成若干个互不相交的区域,使得这些特征在同一区域内,表现出一致性或相似性,而在不同区域间表现出明显的不同。简单的讲,就是在一幅图像中,把目标从背景中分离出来,以便于进一步处理。图像分割是图像处理与计算机视觉领域低层次视觉中最为基础和重要的领域之一,它是对图像进行视觉分析和模式识别的基本前提.同时它也是一个经典难题,到目前为止既不存在一种通用的图像分割方法,也不存在一种判断是否分割成功的客观标准。

阈值法是一种传统的图像分割方法,因其实现简单、计算量小、性能较稳定而成为图像分割中最基本和应用最广泛的分割技术.已被应用于很多的领域,例如,在红外技术应用中,红外无损检测中红外热图像的分割,红外成像跟踪系统中目标的分割;在遥感应用中,合成孔径雷达图像中目标的分割等;在医学应用中,血液细胞图像的分割,磁共振图像的分割;在农业工程应用中,水果品质无损检测过程中水果图像与背景的分割。在工业生产中,机器视觉运用于产品质量检测等等。在这些应用中,分割是对图像进一步分析、识别的前提,分割的准确性将直接影响后续任务的有效性,其中阈值的选取是图像阈值分割方法中的关键技术。

图像分割技术的方法基于边缘的分割依赖于边缘检测算子,例如:sobel算子、prewitt算子和canny算子等,根据图像在灰度、色彩、纹理等方面发生的突变,检测出图像边缘。但是通过边缘检测得到的图像结果并不能用作分割结果,必须按一定策略如边缘松弛法或边缘跟踪等连接成轮廓,从而构成分割区域。并且在上述算子中除了canny算子以外,其他的算子都对噪声比较敏感,进行边缘检测前需要大量的预处理工作,所以在基于边缘分割方面,主要的研究热点在于对微分算子的改进,集中于以下两个方面:1、边缘检测对噪声敏感,因此边缘检测算法的研究一方面在于提高边缘算子的抗噪性;2、边缘检测算法检测到的边缘连续性不好,因此研究如何检测出更加吻合的真实边缘也是另一个重要的方面。

近年来,学者开始将研究转向多尺度,多方向,多特征融合的边缘检测算法,对图像的结构边缘进行优化检测。配合局部二值模式的链码检测正是这一研究方向下的实践。本方法通过多个特征的提取和分类来改善边缘的不连续性问题,通过多尺度的局部二值模式考虑图像的全局信息,强调边缘的一致性和连续性。而且lbp的理论基础简单,比起上述边缘检测算法来说复杂度低,运算量小,大大加快图像分割的速度从而提高效率。



技术实现要素:

本发明旨在设计一种基于lbp和链码技术的图像分割方法,在图像跟踪算法流程的基础上,引入改进的旋转不变的局部二值模式(locaibinarypattern,lbp),对图像进行处理,用以提取高图像中的纹理信息,将图像经过lbp算子与图像跟踪技术方法中的freeman链码的计算后能够快速分割出图中的不同区域,区分不同区域。在lbp算子处理图像的基础上,加入了一种基于lbp特征值分布的变形旋转不变的lbp算子,将两者结合对图像进行分割。

一种基于lbp算子和链码技术的图像分割方法,包括以下步骤:

步骤1、对图像进行预处理,得到含有纹理特征的图像;

步骤2、通过旋转不变的lbp算子得到lbp特征值;

步骤3、以lbp特征值最小的值作为旋转状态下的lbp算子,按照lbp算子对图像进行处理获得效果图;

步骤4、对步骤3的效果图进行噪点滤波;

步骤5、通过freeman链码确定分割区域。

进一步的,当使用摄像头或者相机等拍摄工具时,得到的原图或多或少会受到周围环境的影响,或者光线或者机器本身的成像技术极限,导致得到的原图与实际内容不太一致,这些问题就变成了颜色的差异,图像的模糊、畸形,又或者是干扰噪声,所以对图像首先进行预处理是必不可少的;

所述预处理是用维纳滤波进行预处理,维纳滤波的原理是基于最小均方误差法则,其预处理过程如下:

上式中e是最小均方差,f(x,y)是未被退化的图像(原图像)像素点,是可令最小均方差最小的图像(所求图像)像素点,(x,y)为点坐标;

整理变形后,在图像的恢复处理中,在频域中维纳滤波器的表达如下所示:

式中,w(u,v)为在频域中的变形,h(u,v)为退化函数,|h(u,v)|2=h*(u,v)h(u,v),h*(u,v)为h(u,v)的复共轭,pf(u,v)=|f(u,v)|2为噪声的功率谱,pn(u,v)=|n(u,v)|2为未退化图像的功率谱,(u,v)是像素点坐标(x,y)在频域中的对应坐标,对于信噪比定义如下式:

原图不会被采用,因此原图的功率pf(u,v)无法获得,对于噪声信号的功率谱,很难求取,通常会用一个常量c代替信噪比,故而上式(3)写成:

其中c取0.1~0.001之间;

维纳滤波在处理图像恢复的过程中针对图像内含的噪声进行了一定程度的应对,维纳滤波应用于图像处理的各个方面,是一种具有良好噪声干扰抑制作用的滤波方式。

进一步的,局部二值模式用于图像纹理的特征表述,该特征由于本身原理比较简单,同时又具有计算复杂度低、实现方便等种种优势,lbp受到了各个领域的热爱,演变出了数量繁多的扩展应用,在图像领域更是于图像分割、纹理分割、目标跟踪和人脸识别等方向上有着优秀的表现;

lbp算子是在图像的某个区域(n×n),选取其几何中心点处的灰度值作为参考阈值,然后对区域内的其他像素点进行灰度比较,达到二值化的效果,再将通过这种处理方式得到的二值图片信息进行编码处理,则得到反映该区域的纹理特征,从而达到提取特征的目的;

具体的,将lbp算子定义为在n×n模板的局部区域中,该局部区域共由一个中心点gc和相邻点g0,g1,...,g7构成,将n×n的周围8个点的灰度值与其中心点gc进行对比,用t来代表纹理,则其表示为:

t~(gc,g0,…,g7)(5)

按照中心点gc的灰度值作为阈值,对相邻的八个点进行二值处理,则t可表示为:

t≈t(sign(g0-gc),sign(g1-gc),…,sign(g7-gc))(6)

t是图像的亮度分布描述,其中二值化公式为:

则该区域的8个相邻点将会编码为0或者1,再对这一串二值码进行权值赋予,最后将这一串数字相加就是对应区域中心点的局部二值特征值:

而在此基础上让区域从n×n的正方形区域改为圆形领域,使得lbp算子能在半径为r(r>0)的圆形内进行处理;

假设,一个局部区域内的纹理分布为局部区域内像素点的灰度值的联合分布密度,其定义为:

t=t(gc,g0,…,gp-1)(9)

其中gc为圆形局部区域的中心点的灰度值,而gp(p=0,1,…p)则是对应区域内的除开中心点之外的等距分布的p个点,因为不能确保该区域内的所有点正好为整数个,所以使用双线性插值算法对没有落在像素位置的点进行灰度值计算,则图像中的邻域内的gp的坐标用下式表示:

其中(xc,yc)表示中心点的坐标,若没有损失任何信息,从邻域中的其他像素点的灰度值gp减去中心点gc的值,那么局部区域的纹理t就能用中心点c与周边的灰度值的差值的联合分布表示:

t=t(gc,g0-gc,…,gp-1-gc)(11)

若又设,中心点gc与周边的gp的差gp-gc(p=0,1,…p)与中心点gc并无关系,将式(9)改写成:

t≈t(gc)(g0-gc,…,gp-1-gc)(12)

由于实际中这些假设并不能完全成立,因为图像中的灰度值的范围在计算机中仅为0-255,那些超出这个范围的gc必然就会造成差值范围的减小,故以上假设和推论就可能会导致信息丢失,当然,也不是没有应对措施,通过允许少量图像信息的丢失,让灰度图中局部纹理在灰度范围内保有平移不变性,再加上t(gc)是图像的亮度分布描述,与局部纹理的状态无关,并不具有进行纹理分析的特征,所以,在此直接省略,将式子(12)改写为:

t≈t(g0-gc,…,gp-1-gc)(13)

上式的差值分布函数清楚地对所选区域内的每个点的纹理特征进行了标记,对于每一个像素点而言,其各个方向上的变化均会较大;在边缘处的位置就会存在一定方向值较大,而其他方向值较小的状况;当区域内存在变化平缓的部分时,上面的差值便会非常小以至于接近0值;

由于式(13)中去掉了与亮度变化相关的t(gc),所以,该式就又灰度平移不变性,也就是,对邻域中所有p+1个像素点的灰度同时进行数值的加减是不会改变其纹理的特性的,但是如果同时进行倍数更改,是会导致纹理特征发生改变的,所以想要保持尺度不发生变化,就只能使用差值:

t≈t(s(g0-gc),…,s(gp-1-gc))(14)

(14)得到一个8字节的二进制数,然后对点按照不同的位置进行2p的加权求和,就能得到与邻域内点相关的唯一的lbp特征值,并称之为模式,代表(xc,yc)为中心的邻域的纹理特征,表示如下:

(16)实际代表着求取的差值的符号变成一个p位的二进制数,从而就形成了一个取值在0-2p范围内的离散的lbp特征值,这样,使得差值变成了一种lbp的模式,然后该区域的灰度分布以及纹理特征均用这个lbp特征值来表示:

t≈t(lbp(xc,yc))(17)

从而,lbp算子对于单调变化的灰度图是具有一定鲁棒性的,并且只要点的位置能保持不便,算出来的lbp特征值也具有不变性,在半径为r的圆形区域,其中包含有p个点gp(p=0,1,…p)。

进一步的,用来表示lbp算子,常见的算子有

进一步的,对步骤2得到的lbp特征值进行初始定义,选取其中最小的值作为此旋转领域的lbp特征值,其公式如下:

其中的lbpri表示旋转状态下的lbp算子,为不变量,ror(x,i)则是旋转函数表达,表明将x进行循环右移i(i<p)位,在这里并没有对如何对区域内的像素点进行编号给出具体规定,一般,选择从中心点左上方的像素点开始,按照顺时针顺序依次编号,得到后,即可获得效果图。

进一步的,对步骤3的噪点滤波使用的是空域高斯平滑滤波;高斯滤波是一种线性平滑滤波,适用于消除高斯噪声,广泛应用于图像处理的减噪过程,高斯函数的公式为:

其中(x,y)为点坐标,在图像处理中可认为是整数,σ是标准差,在空域中,对于大小为m×n的模板,由于高斯函数傅里叶变换后仍为高斯函数的特殊性,高斯滤波表示为:

上式中的系数在离散取样中经常被忽略,为了调整取样参数,还需要做归一化处理,高斯滤波就是对整幅图像进行加权平均的过程,每一个像素点的值,都由其本身和邻域内的其他像素值经过加权平均后得到,高斯滤波的具体操作是:用一个卷积扫描图像中的每一个像素,用卷积确定的邻域内像素的加权平均灰度值去替代卷积中心像素点的值;得到的结果为离散采样和不为1,所以还需要进行归一化。

进一步的,通过freeman链码确定分割区域的过程为:设置滤波后的图像像素点为中心,用以上像素点的四连通邻域或者八连通邻域,作为链码值即链码序列,链码值的大小则是由中心点指向邻域点的方向决定,进行3次链码测定,保留图形类似的区域作为边界,由链码构成的闭合区域内部与外部则划分为两个部分;

可以看出旋转不变的lbp算子拥有了更为优秀的鲁棒性,而且简化了lbp模式,将8种旋转变换的lbp算子,统一成同样的值,提升了纹理识别的容易度,但是,由于方向其实是纹理的一项重要特征,lbp算子的旋转不变性在提升辨识度的同时,丢失了方向这个信息,但是,在纹理图像分析的过程中,发现这种算子是能够较好的得到特征区域的;

在进行旋转不变lbp算子处理之后的效果图,经过高斯滤波后,得到比较突出的边缘像素点,需要通过跟踪对象的轮廓跟踪,对形状进行轮廓排序,根据像素点的相邻关系分成4方向跟踪和8方向跟踪,分别如图3a和图3b所示;其主要步骤为:

1)选择起点:图像边界点为行坐标和列坐标的值都为最小的点,也作为起始位置,对目标图像通过扫描的方式查找起点位置,具体为按照从左到右从上到下的顺序逐行扫描,当找寻到最小行列值的第一个位置时,如果该点没有跟踪结束的标记符号,则可将该点确定为轮廓的边界起始点记为a0,并将其坐标值存在轮廓链表结构内;

2)查找轮廓:从起点a0出发,顺着该点进行邻域方向的顺序优先级判断,按照从小到大的原则,然后通过边缘判断准则,即该点的梯度值大小,大于阈值则是边界点,若符合准则,则将次相邻点的坐标存入轮廓链表内记为an(n=1,2,3,…),然后将an重新设为当前轮廓点,再来查找an+1,将其存入轮廓链表内,继续进行下一个方向查找,以此类推,找到所有的轮廓点;

3)依次按照第二步的操作对图中边缘点进行循环处理,一直到当前的轮廓点周围没有相邻轮廓点,或者相邻轮廓点已被跟踪或标记,此时得到一条边界,

4)得到一条边界后,将上述边界点的坐标全部保存下来,再从另一个位置开始,重复上述1-3步骤找到另一条边界;

5)按照上述步骤,完成图像所有边界点的标记,得到完整的边界轮廓图。

进一步的,得到图像中物体的边缘特征之后,需要用工具对其进行合适的表述,freeman链码用于描述物体的边界,其方式为,通过设置边界点为中心,用其四连通邻域或者八连通邻域来作为链码值,值的大小则是由中心点指向邻域点的方向决定,参照图3。

链码的定义是相对的,表示的是某个点位于中心点的参考方向,所以链码存在以下特性:

1、起点的选择对链码的值有着很大的影响,起点不同的相同图像的链码是完全不同的,但是相同图像的链码却存在着循环平移特性,比如图4所示的图形链码,以a为起点,则链码为01765342;以b为起点链码为76534201。存在着平移关系,所以对其进行归一化处理,将图中的链码作为一个自然数,然后通过循环移位,得到一个最小的数值,用这个最小数值来代表该图的链码序列,图4中为01765342,不难看出,一个图像的链码序列是确定的。

2、旋转不变性:当图形发生旋转之后,链码序列会发生很大的不同,如图5所示,但是由于链码之间的相对变换关系并没有发生改变,所以旋转之后的链码与原链码存在着固定的关系,这种关系通过链码的一阶差分表示出来,通过对链码进行一阶差分变换得到的新差分链码序列,表示了链码之间的方向变换,也就说明了链码具有图像旋转的不变性。

3、平移不变性:也就是链码在描述图形的时候,图形发生平移不会改变其链码序列。

4、缩放不变形:当图形发生缩放变换的时候,链码确实会发生改变,但是由于链码序列其实是与图像的大小成比例变换,所以按照比例对链码序列进行归一化处理,从而得到一个固定值,满足缩放变换的匹配。

本发明的有益效果是:利用局部二值模式对图像的结构边缘进行优化检测。配合链码检测通过多个特征的提取和分类来改善边缘的不连续性问题,通过多尺度的局部二值模式考虑图像的全局信息,强调边缘的一致性和连续性,而且lbp算子的理论基础简单,比起上述边缘检测算法来说复杂度低,运算量小,大大加快图像分割的速度从而提高效率。

附图说明

图1为本发明的基于lbp算子和链码技术的图像分割方法流程图;

图2为本实施例具有旋转不变性lbp算子结构示意图;

图3a为本实施例的freeman链码的4方向跟踪;

图3b为本实施例的freeman链码的8方向跟踪;

图4为本实施例的链码平移变换时的不同表示;

图5为本实施例的链码旋转变换时的不同表示;

图6为实施例的原图片;

图7为实施例中经过旋转不变的lbp算子和freeman链码分割所得图像。

具体实施方式

下面结合实施例及附图对本发明作进一步详细的描述,但本发明的实施方式不限于此,需指出的是以下若有未特别详细说明之过程或符合(如省略号)均是本领域技术人员可参照现有技术理解或实现的。

一种基于lbp算子和链码技术的图像分割方法,如图1所示,包括以下步骤:

步骤1、首先对原图进行维纳滤波预处理,得到含有纹理特征的图像,原图如图6所示;

预处理是用维纳滤波进行处理,维纳滤波的原理是基于最小均方误差法则,如下:

上式中e是最小均方差,f(x,y)是未被退化的图像(原图像)像素点,是可令最小均方差最小的图像(所求图像)像素点。

整理变形后,在图像的恢复处理中,在频域中维纳滤波器的表达如下所示:

式中,w(u,v)为在频域中的变形,h(u,v)为退化函数,|h(u,v)|2=h*(u,v)h(u,v),h*(u,v)为h(u,v)的复共轭,pf(u,v)=|f(u,v)|2为噪声的功率谱,pn(u,v)=|n(u,v)|2为未退化图像的功率谱,对于信噪比定义如下式:

原图不会被采用,因此原图的功率pf(u,v)无法获得,对于噪声信号的功率谱,很难求取。通常会用一个常量c代替信噪比,故而上式(3)写成:

其中c取0.1~0.001之间。

步骤2、通过旋转不变的lbp算子得到lbp特征值;在图像的某个区域(n×n),选取其几何中心点处的灰度值作为参考阈值,然后对区域内的其他像素点进行灰度比较,达到二值化的效果。再将通过这种处理方式得到的二值图片信息进行编码处理,则得到反映该区域的纹理特征,从而达到提取特征的目的。

最初的lbp算子定义为在3×3模板的局部区域中,该局部区域共由一个中心点gc和八个相邻点g0,g1,...,g7构成,将3×3的周围8个点的灰度值与中心点gc进行对比,用t来代表纹理,则其表示为:

t~(gc,g0,…,g7)(5)

按照中心点gc的灰度值作为阈值,对相邻的八个点进行二值处理,则t可表示为:

t≈t(sign(g0-gc),sign(g1-gc),…,sign(g7-gc))(6)

其中二值化公式为:

则该区域的8个相邻点将会编码为0或者1,如图2所示,再对这一串二值码进行权值赋予,最后将这一串数字相加就是对应区域中心点的局部二值特征值:

而在此基础上让区域从3×3的正方形区域改为圆形领域,使得lbp算子能在半径为r(r>0)的圆形内进行处理。

假设,一个局部区域内的纹理分布为局部区域内像素点的灰度值的联合分布密度,其定义为:

t=t(gc,g0,…,gp-1)(9)

其中gc为圆形局部区域的中心点的灰度值,而gp(p=0,1,…p)则是对应区域内的除开中心点之外的等距分布的p个点。因为不能确保该区域内的所有点正好为整数个,所以使用双线性插值算法对没有落在像素位置的点进行灰度值计算。则,图像中的邻域内的gp的坐标用下式表示:

其中(xc,yc)表示中心点的坐标。若没有损失任何信息,从邻域中的其他像素点的灰度值gp减去中心点gc的值,那么局部区域的纹理t就能用中心点c与周边的灰度值的差值的联合分布表示:

t=t(gc,g0-gc,…,gp-1-gc)(11)

若又设,中心点gc与周边的gp的差gp-gc(p=0,1,…p)与中心点gc并无关系,将式(9)改写成:

t≈t(gc)(g0-gc,…,gp-1-gc)(12)

由于实际中这些假设并不能完全成立,因为图像中的灰度值的范围在计算机中仅为0-255,那些超出这个范围的gc必然就会造成差值范围的减小,故以上假设和推论就可能会导致信息丢失。当然,也不是没有应对措施,通过允许少量图像信息的丢失,让灰度图中局部纹理在灰度范围内保有平移不变性。再加上,t(gc)是图像的亮度分布描述,与局部纹理的状态无关,并不具有进行纹理分析的特征,所以,在此直接省略,将式子(12)改写为:

t≈t(g0-gc,…,gp-1-gc)(13)

上式的差值分布函数清楚地对所选区域内的每个点的纹理特征进行了标记,对于每一个像素点而言,其各个方向上的变化均会较大;在边缘处的位置就会存在一定方向值较大,而其他方向值较小的状况;当区域内存在变化平缓的部分时,上面的差值便会非常小以至于接近0值。

由于式(13)中去掉了与亮度变化相关的t(gc),所以,该式就又灰度平移不变性,也就是,对邻域中所有p+1个像素点的灰度同时进行数值的加减是不会改变其纹理的特性的。但是如果同时进行倍数更改,是会导致纹理特征发生改变的。所以想要保持尺度不发生变化,就只能使用差值:

t≈t(s(g0-gc),…,s(gp-1-gc))(14)

式(14)得到一个8字节的二进制数,然后对点按照不同的位置进行2p的加权求和,就能得到与邻域内点相关的唯一的lbp特征值,并称之为模式。以(xc,yc)为中心的邻域的纹理特征,表示如下:

式(16)实际代表着求取的差值的符号变成一个p位的二进制数,从而就形成了一个取值在0-2p范围内的离散的lbp特征值,这样,使得差值变成了一种lbp的模式,然后该区域的灰度分布以及纹理特征均用这个lbp特征值来表示:

t≈t(lbp(xc,yc))(17)

从而,lbp算子对于单调变化的灰度图是具有一定鲁棒性的,并且只要点的位置能保持不便,算出来的lbp特征值也具有不变性。在半径为r的圆形区域,其中包含有p个点gp(p=0,1,…p),本实施例用来表示lbp算子。

步骤3:对步骤2得到的lbp特征值进行初始定义,选取其中最小的值作为此旋转领域的lbp特征值,其公式如下:

其中的lbpri表示旋转状态下的lbp算子,为不变量,ror(x,i)则是旋转函数表达,表明将x进行循环右移i(i<p)位。在这里并没有对如何对区域内的像素点进行编号给出具体规定,一般,选择从中心点左上方的像素点开始,按照顺时针顺序依次编号,其过程如图2所示,得到后,对图像进行处理获得效果图。

可以看出经过旋转不变的改造后,lbp算子拥有了更为优秀的鲁棒性,而且简化了lbp模式,将8种旋转变换的lbp算子统一成了同样的值,提升了纹理识别的容易度。但是,由于方向其实是纹理的一项重要特征,lbp算子的旋转不变性在提升辨识度的同时,丢失了方向这个信息。但是,在纹理图像分析的过程中,发现这种算子是能够较好的得到特征区域的。

步骤4、对特征矩阵进行噪点滤波,噪点滤波使用的是空域高斯平滑滤波。

高斯滤波是一种线性平滑滤波,适用于消除高斯噪声,广泛应用于图像处理的减噪过程,高斯函数的基本公式为:

其中(x,y)为点坐标,在图像处理中可认为是整数,σ是标准差。在空域中,对于大小为m×n的模板,由于高斯函数傅里叶变换后仍为高斯函数的特殊性,高斯滤波表示为:

上式中的系数在离散取样中经常被忽略,为了调整取样参数,还需要做归一化处理。

通俗的讲,高斯滤波就是对整幅图像进行加权平均的过程,每一个像素点的值,都由其本身和邻域内的其他像素值经过加权平均后得到。高斯滤波的具体操作是:用一个模板(或称卷积、掩模)扫描图像中的每一个像素,用模板确定的邻域内像素的加权平均灰度值去替代模板中心像素点的值,得到的结果为离散采样和不为1,所以还需要进行归一化。

步骤5、得到图像中物体的边缘特征之后,需要用工具对其进行合适的表述。freeman链码用于描述物体的边界,通过设置滤波后的图像像素点为中心,用其四连通邻域或者八连通邻域来作为链码值,分别如图3a和图3b所示,值的大小则是由中心点指向邻域点的方向决定,进行3次链码测定,保留图形类似的区域作为边界,由链码构成的闭合区域内部与外部则划分为两个部分。

一般根据像素点的相邻关系分成4方向跟踪和8方向跟踪,通过跟踪对象的轮廓跟踪,对形状进行轮廓排序,其主要步骤为:

1)选择起点:图像边界点为行坐标和列坐标的值都为最小的点,也作为起始位置。对目标图像通过扫描的方式查找起点位置,具体为按照从左到右从上到下的顺序逐行扫描,当找寻到最小行列值的第一个位置时,如果该点没有跟踪结束的标记符号,则可将该点确定为轮廓的边界起始点记为a0,并将其坐标值存在轮廓链表结构内。

2)查找轮廓:从起点a0出发,顺着该点进行邻域方向的顺序优先级判断,按照从小到大的原则。然后通过边缘判断准则,即该点的梯度值大小,大于阈值则是边界点,若符合准则,则将次相邻点的坐标存入轮廓链表内记为an(n=1,2,3,…),然后将an重新设为当前轮廓点,再来查找an+1,将其存入轮廓链表内,继续进行下一个方向查找。以此类推,找到所有的轮廓点。

3)依次按照第二步的操作对图中边缘点进行循环处理,一直到当前的轮廓点周围没有相邻轮廓点,或者相邻轮廓点已被跟踪或标记。此时得到一条边界。

4)得到一条边界后,将上述边界点的坐标全部保存下来,再从另一个位置开始,重复上述1-3步骤找到另一条边界。

5)按照上述步骤1)-4),完成图像所有边界点的标记,得到完整的边界轮廓图,图7为实施例中经过旋转不变的lbp算子和freeman链码分割所得图像。

链码的定义是相对的,表示的是某个点位于中心点的参考方向,所以链码存在以下特性,结合图4与图5进行说明:

1、起点的选择对链码的值有着很大的影响,起点不同的相同图像的链码是完全不同的。但是相同图像的链码却存在着循环平移特性。比如图4所示的图形链码,以a为起点,则链码为01765342;以b为起点链码为76534201,存在着平移关系,平移关系就如图4所示,两个图之间可以通过平移互相获得,只因为链码起点的选择不同而导致链码值不同,所以对其进行归一化处理。将图中的链码作为一个自然数,然后通过循环移位,得到一个最小的数值,用这个最小数值来代表该图的链码序列,图4中为01765342。所以不难看出,一个图像的链码序列是确定的。

2、旋转不变性:当图形发生旋转之后,链码序列会发生很大的不同,如图5所示。但是由于链码之间的相对变换关系并没有发生改变,所以旋转之后的链码与原链码存在着固定的关系。这种关系通过链码的一阶差分表示出来,通过对链码进行一阶差分变换得到的新差分链码序列,表示了链码之间的方向变换,也就说明了链码具有图像旋转的不变性。

3、平移不变性:也就是链码在描述图形的时候,图形发生平移不会改变其链码序列。

4、缩放不变形:当图形发生缩放变换的时候,链码确实会发生改变,但是由于链码序列其实是与图像的大小成比例变换,所以按照比例对链码序列进行归一化处理,从而得到一个固定值,满足缩放变换的匹配。

上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1