一种基于颜色空间与线段的彩色图像轮廓提取方法与流程

文档序号:11288445阅读:251来源:国知局
一种基于颜色空间与线段的彩色图像轮廓提取方法与流程

本发明涉及图像处理技术领域,具体涉及一种基于颜色空间与线段的彩色图像轮廓提取方法。



背景技术:

图像处理中,轮廓有着非常重要的作用:它标示了图像中的感兴趣区域。轮廓的检测通常是特征提取和识别的最初步骤,在人脸分析和医学图像处理中,图像轮廓为后续处理提供了重要的信息。它是许多计算机视觉和视频应用的基础和重要组成部分,同时,也是计算机视觉的经典难题之一。

轮廓是由边缘像素连接起来形成的。轮廓可以是断开的,也可以是封闭的。封闭轮廓对应于区域的边界,而区域内的像素可以通过填充算法来填满;断开的轮廓可能是区域边界的一部分,也可能是图像线条特征。区域之间的对比度太弱或边缘检测阈值设置太高都有可能产生间断的轮廓。

现有的轮廓检测算法的第一步通常是边缘检测,常用的局部边缘检测方法主要有:一阶微分、二次微分和模板操作等,比较有代表性的是canny边缘算子。虽然边缘检测算法可以根据像素间的差异提取出包含着轮廓信息的边缘像素,但通常还不能形成认知上有效的轮廓,它并没有把目标作为一个整体。一个轮廓一般对应于一系列的点,也就是图像中的一条曲线。表示方法可能根据不同情况而有所不同。此外,阈值的设置是边缘检测算法中无法回避的问题,过高的阈值会导致边缘信息的丢失;过低的阈值则会保留过多的细节信息,在提取轮廓时,这些细节信息会影响轮廓的精确性和连续性。



技术实现要素:

(一)要解决的技术问题

本发明要解决的技术问题是:如何提升轮廓检测的一致性和鲁棒性。

(二)技术方案

为了解决上述技术问题,本发明提供了一种基于颜色空间与线段的彩色图像轮廓提取方法,包括以下步骤:

s1、基于颜色特征空间进行图像分割得到目标图像的边缘点集fcr;

s2、基于线段检测方法提取所述目标图像的边缘点集lsd;

s3、对集合fcr与lsd取交集,将得到的点集中的点按梯度幅值大小进行排序,同时设置所有点的访问状态为未访问;定义初始为空的队列结构;

s4、从梯度幅值最大的点开始,以队列结构进行深度优先遍历:在当前点pc的8-临域内,若有同属于fcr边缘的点,则将该点作为新的点加入队列结构,并将新加入的点作为pc;若未能在8-临域内找到fcr标示的边缘点,则寻找在pc周边最近的lsd检测结果点,设最近的lsd检测结果点为pn,若pc与pn之间的欧式距离小于预设阈值t,则将pn也加入到当前队列结构中,并将pn作为pc;按此方式进行深度优先遍历,直至遍历所有fcr点集;

s5、将fcr与lsd交集中的点以及得到的队列结构中的点取并集,作为所述目标图像的轮廓提取结果。

优选地,步骤s4中,对8-临域内的点,若找到多个符合条件的,优先选取符合变量d记录的当前生长方向的点;所述变量d由两个分量dx,dy组成,dx,dy分别记录最新加入队列结构中的点相对于上一加入点在水平方向和垂直方向上的偏移量,若队列结构中只有一个点则dx,dy记录已加入点相对于初始点的偏移量。以当前点为初始点建立二维直角坐标系,水平方向右侧为正方向,左侧为负方向,垂直方向上方为正方向,下发为负方向。

优选地,步骤s4中,在轮廓沿fcr结果集生长过程中,还在当前遍历点周边半径为2像素的菱形结构范围内寻找是否存在lsd检测结果点,若无lsd检测结果点,则记录变量err值加1,在err超过预设阈值时,判定为遍历进入了fcr的误检范围,则去掉当前遍历点,从上一个遍历点重新开始遍历;变量err初始值为0。

(三)有益效果

本发明的方法对颜色空间划分结果进行了进一步的修正与优化,去除了明显的非轮廓信息,更接近图像中真实的边缘,在最终结果的可靠性上更强。实验研究表明,与传统的边缘检测算法相比,本发明无需对不同的图像进行阈值设定,从而提升了轮廓检测的一致性和鲁棒性。

附图说明

图1为轮廓生长方向更新方法示意图;

图2为实验使用的原始图片;

图3为lsd检测获得的边缘结果;

图4为颜色空间融合的边缘提取结果;

图5为本发明的轮廓提取结果。

具体实施方式

为使本发明的目的、内容、和优点更加清楚,下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。

本发明提供了一种基于颜色空间与线段的彩色图像轮廓提取方法,包括以下步骤:

s1、基于颜色特征空间进行图像分割得到目标图像的边缘点集fcr;

基于颜色空间的聚类与融合方法将注意力集中在了对划分结果的整合上。现有的聚类方法已经较为成熟,具体算法可参考mignottem.segmentationbyfusionofhistogrambasedk-meansclustersindifferentcolorspaces.ieeetransactionsonimageprocessing,vol.17,may2008:780-787.

通过对像素的颜色使用k-means聚类能有效地将颜色空间划分为数个不相交的区域,由于每个颜色空间的局限性,需要使用多个颜色空间,重复此过程生成ns个聚类结果,并对这ns个结果进行融合。考虑到像素在空间上的联系,通过去除结果中小块的孤立区域,使划分结果在空间上也具有连续性,从而达到分割目的。

s2、基于线段检测方法提取所述目标图像的边缘点集lsd;

传统的线段检测方法一般是先进行canny边缘检测后进行hough变换,从而提取出含有超过某一阈值的边缘点所组成的直线,通过截取将这些直线分割成一个个的线段。hough变换的缺陷在于计算量大,占用很大的存储空间;由于量化误差的存在导致参数的不确定性和参数空间中的虚假峰值等。

针对此问题,本步骤使用的快速线段检测方法lsd并不利用梯度幅值信息,而是利用了梯度的方向。该方法首先通过迭代将梯度方向相近的点连接成具有统一朝向的区域,再寻找能够包围此区域的最小矩形结构,从而完成线段结构的检测。此外,此方法还含有错误控制机制,从而保证了检测结果的正确性,对于包含大量纹理的图像区域,尤其是包含大量各项同性特征的区域,不会检测出线段结构(通常hough变换对这种类型的区域出现的检测结果不理想)。

本步骤使用的快速线段检测算法在(r.gromponevongioi,j.jakubowicz,j.m.morel,g.randall.lsd:afastlinesegmentdetectorwithafalsedetectioncontrol[j].ieeetransactionsonpatternanalysisandmachineintelligence,vol.32,no.4,april2010:722-732.)中有详细的描述。

轮廓的提取方法总体来说分为2类:自顶向下的分裂方法和自底向上的合并方法。上述颜色空间的划分与融合属于自顶向下方法,线段检测方法则属于自底向上方法。两种方法分别从不同途径获取轮廓信息。

颜色空间融合方法在获得图像整体轮廓方面较为突出,这主要是利用了图像中前景与背景颜色的差异,但是细节部分容易出现偏差。线段检测的结果是图像中的具有相似的梯度方向,且梯度值超过一定数值的一系列线段结构,而并不是完整的轮廓。但是,这样得到的结果并不能作为图像的轮廓,仍需要去除非轮廓的部分。两种方法的优势在于不需要对不同类型的图像进行阈值调整,本发明希望在保持这一特性的前提下,尽可能准确地找到图像中的轮廓。因此,本发明利用颜色空间分割得到初步的轮廓结果,再利用线段检测进行修正,以确定最终的轮廓。

由于颜色空间和线段检测方法在本质上的不同,对同一图像的划分结果一般存在差异,对于同一坐标(x,y)处的点p,有如下情况:

②p∈lsd&&p∈fcr;

此处lsd与fcr分别表示由线段检测与颜色空间融合所确定的边缘点集。

对于情况①和②,由于两种方法得出的结论一致,因此不需要进行特殊处理;对于③和④,两种方法得到相反的结果,则接下来需要进行进一步的判定以确认p点是否是所寻找的轮廓的一部分。

s3、对集合fcr与lsd取交集,将得到的点集中的点按梯度幅值大小进行排序,同时设置所有点的访问状态为未访问;定义初始为空的队列结构queue(n);

s4、从梯度幅值最大的点开始,以队列结构进行深度优先遍历:在当前点pc的8-临域内,若有同属于fcr边缘的点,则将该点作为新的点(状态标记为未访问的点)加入队列结构,并将新加入的点作为pc;若未能在8-临域内找到fcr标示的边缘点,则寻找在pc周边最近的lsd检测结果点,设最近的lsd检测结果点为pn,若pc与pn之间的欧式距离小于预设阈值t,则将pn也加入到当前队列结构中,并将pn作为pc,若找到多个最近的pn,则取欧式距离最小的那个pn作为pc;按此方式进行深度优先遍历,直至遍历所有fcr点集;

步骤s4中,暗含的一个假设是由fcr获得的图像轮廓点都是准确的,因此在遍历过程中将所有的fcr结果点都加入到了最终的图像轮廓中。事实上,由fcr获得的点集并不一定全部是图像轮廓的组成部分,因此在遍历过程中需要有优先顺序和取舍。具体来说,在沿fcr获得的边缘点集遍历时,增设一个变量d记录边缘生长的方向,则对8-临域内的点,若找到多个符合条件的,则优先选取符合或接近变量d记录的当前生长方向的点,若符合或接近程度相同,则选取第一个发现的点,查找的顺序可以是从上到下、从左到右;所述变量d由两个分量dx,dy组成,dx,dy分别记录最新加入队列结构中的点相对于上一加入点在水平方向和垂直方向上的偏移量,若队列结构中只有一个点则dx,dy记录已加入点相对于初始点的偏移量,以当前点为初始点建立二维直角坐标系,水平方向右侧为正方向,左侧为负方向,垂直方向上方为正方向,下发为负方向。如图1所示,设点p为初始点,则若移动至点a,则dx=+1,dy=0;若移动至点b,dx=+1,dy=+1;若移动至点c,则dx=0,dy=(-1)。其余同理。

由于变量d表示的是轮廓线变化的趋势,我们并不关心轮廓具体移动了多少,只是关心它的方向,变量d中记录的(dx,dy)的符号即表示了优先选取的方向。

步骤s4中,在轮廓沿fcr结果集生长过程中,还在当前遍历点周边半径为2像素的菱形结构范围内寻找是否存在lsd检测结果点,若无lsd检测结果点,则记录变量err值加1,在err超过预设阈值时,判定为遍历进入了fcr的误检范围,则去掉当前遍历点,从上一个遍历点重新开始遍历;变量err初始值为0。

在轮廓沿fcr结果集生长过程中,需要记录当前遍历点周边点中是否有lsd的结果点,以免轮廓生长至fcr的误检范围。因此,本发明中,采用以当前遍历点周边半径为2像素的菱形结构元素strel范围内寻找是否存在lsd结果点,见式(1)。中心点为当前遍历到的点的位置,若图中为1的点内无lsd结果点,记录变量err值加1,当err超过一定阈值,则判定为遍历进入了fcr的误检范围,算法进行回溯。

s5、将fcr与lsd交集中的点以及得到的队列结构中的点取并集,作为所述目标图像的轮廓提取结果。

若得到多个轮廓提取结果,则完成以上步骤后获得的图像轮廓仍不能作为最终的结果,考虑到轮廓的连续性,需要去除孤立的轮廓点。因此,还要统计出所获得的轮廓信息的长度,即轮廓中像素点的个数,去除长度小于预设阈值的轮廓,即可得到最终结果。

下面给出上述方法的实验结果,并与单一使用fcr和lsd的测试结果进行比较。实验使用的原始图片如图2所示,来自berkeley图像数据库。

本发明对图像数据库中的图像进行了测试,这里给出了四幅图像的处理结果。试验中,使用rgb、hsv、lab三个颜色空间,线段检测角度阈值设置为22.5°,最终轮廓去除阶段阈值设置为8。

线段检测结果如图3所示。由第二幅图可以看出,某些情况下结果中含有较多与轮廓无关的边缘信息,尤其是物体内部的细节信息,因而不能作为生成最终轮廓的唯一依据:

颜色空间分割结果如图4所示,为明显起见,对边缘进行了加粗。注意第三幅图像的左下角出现了明显的误检。

最终由本文算法得到的轮廓如图5所示。

由实验结果可以看出,本发明提出的方法对颜色空间划分结果进行了进一步的修正与优化,去除了明显的非轮廓信息,更接近图像中真实的边缘,在最终结果的可靠性上更强。实验研究的表明,与传统的边缘检测算法相比,本文算法的优势在于无需对不同的图像进行阈值设定,从而提升了轮廓检测的一致性和鲁棒性。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。

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