一种快速识别数字图像中直线段的检测方法

文档序号:6374923阅读:1577来源:国知局
专利名称:一种快速识别数字图像中直线段的检测方法
技术领域
本发明涉及对一种对图像内特定图形的定标方法,特别涉及一种快速识别数字图像中直线段的检测方法。
背景技术
在计算机视觉和机器视觉学科中,直线段检测是一种能同时给出数字图像中直线长度和位置的直线检测方法。它的应用十分广泛,例如图像压缩,材料缝隙检测,立体视觉,道路检测,机器人导航等。同时,它也是基于图论的目标识别方法中所使用到的一种基本的点特征。因此,线段检测不仅在工业生产中具有现实应用价值,而且也是构成更复杂算法的重要基础。
当前国内外主流的线段检测方法主要有三种基于直线检测的线段检测、基于梯度信息的线段检测和基于边界跟踪的线段检测。(I)基于直线检测的线段检测是在直线检测的基础上,在图像中对已被直线检测所识别的直线,根据其上的边界像素的分布,给出线段。这种方法的优点是可以直接使用现有成熟的直线检测算法。由于最早的直线检测方法问世于1962年,经过多年的发展,这种方法的种类和数量十分惊人,但大部分都基于霍夫变换,而霍夫变换的运算量非常巨大,由于量化误差的存在导致参数的不确定性和参数空间中的虚假峰值,其快速性较差。针对霍夫变换的上述问题,Xu等1990年提出了随机霍夫变换(randomized Hough transform,简称RHT)。随机霍夫变换采用多到一的映射,避免了标准霍夫变换(standard Houghtransformm,简称SHT) —到多映射的庞大计算量,而且随机霍夫变换算法采用动态链表结构,只对多到一映射所得到的参数分配单元进行累积,降低了内存需求,同时使得随机霍夫变换具有参数空间无限大、参数精度任意高等特点。然而在处理复杂图像时,由于随机采样会引入大量的无效采样和累积,使方法的性能大为降低。虽然近年来直线检测有所创新,例如 Fernandes 于 2008 年提出的 KHT 算法(Gaussian Kernel-based Hough Transform ;中文名基于高斯核的霍夫变换,详见L. A. F. Fernandes, Μ. M. Oliveira, " Real-timeline detection through an improved Hough transform voting scheme " , PatternRecognition, vol. 41,no. I,pp. 299-314. Jan. 2008)和 Mochizuki 于 2009 年提出的 N 点随机霍夫算法(详见Y. Mochizuki,A. Torii,A. Imiya, " N-Point Hough transform for linedetection" , Journal of Visual Communication and Image Representation, vol.20,no. 4,pp. 242-253. May. 2009)。通过深入分析发现,这些新方法虽然采用了新的霍夫变换形式,但这些新变换方法越来越依赖于前期预处理过程。比如KHT算法,虽然使用了统计学的二元高斯分布函数来产生直线峰值,但实际上这个统计函数的参数计算完全依赖于Pope于1994年和Lowe于1987年提出的链接与分割算法,KHT算法通过Pope和Lowe的算法获得了每条直线的样本空间,进而才能应用高斯函数。与KHT算法类似,N点随机霍夫算法由于使用随机组合的点来产生峰值,为了降低可能产生的组合总数,Mochizuki也使用了前期处理算法。这些预处理过程,实际上相当于简单的线段检测,因为它们为后续的霍夫变换提供了具有较好共线性的点集,而非传统的不具备几何意义的离散点。虽然新算法在直线检测上的精度与效率较以往有了提高,但这些算法在设计之初并没有考虑线段检测,所以需要额外添加一个后期处理过程,从检测到的直线中分割出线段。而且根据Akinlar于2011年的分析(详见 C. Akinlar, C. Topal, " EDLines:Areal-time line segment detectorwith a false detection control" , Pattern Recognition Letters, vol.32, no.13,pp. 1633-1642. Oct. 2011),这些算法会融合不连续的线段,产生大量错误的检测结果,在较为复杂的图形图像检测中应用困难。所以,基于直线检测的线段检测很难完成快速处理任务,因而目前的线段检测算法较少采用这种方法。(2)基于梯度信息的线段检测的基础原理是源于Burns于1986年提出的直线检测方法(J. B. Burns, A. R. Hanson, E. M. Riseman, " Extracting straight lines" , IEEETrans. Pattern Anal. Machine Intell.,vol. 8, no. 4, pp. 425-455. 1986),这种方法的关键思想是使用由二阶微分算子产生的边界像素的梯度方向来识别直线。几十年来,各种基于梯度信息的线段检测方法不断演化。在2008年,Gioi提出了一种免调节参数的快速线段检测算法LSD(ALine Segment Detector,中文名一种直线段检测算法,详见G. v. Gioi,R. Jakubowicz, J. Morel, J. M. Randall, " LSD:A Line Segment detector with a false detection control " , CMLA. Centre de Mathematiques et de leurs Applications,Ecole Normale Superieure de Cachan (ENS-CACHAN), Germany. 2008)。LSD 是在当时精度可以接受的,最快的线段检测方法。Yang在2011年提出了 TODIS算法(A LineSegment Detector Using Two-orthogonal Direction Image Scanning,中文名基于双正交图像扫描的直线段检测算法,详见K. Yang, S. S. Ge, H. He, " Robust line detectionusing two-orthogonal direction image scanning " , Computer Vision and ImageUnderstanding, vol. 115,no. 8, pp. 1207-1222. Aug. 2011),TODIS 的精度超过了 LSD,可以更准确地识别多个线段,但其速度仅为LSD的1/8。Akinlar在2011年提出的EDLines算法(A Real-time Line Segment Detector with a False Detection Control Based onEdge Drawing Algorithm,中文名一种基于边缘绘制算法的,错误检测可控的实时直线段检测算法)的速度接近LSD的10倍。EDLines的效率较以前的算法有大幅度提高,已经具备了快速检测的应用价值。通过分析EDLines,发现实现这种算法效率的关键是结合边缘检测和线段检测,即EDLines的输入并非离散点,而是经过预处理的具有一定几何信息的点集。这与KHT算法类似,不同的是EDLines的预处理采用了 Topal于2010年提出的一种新的名为 Edge drawing 的边缘检测算法(详见 C. Topal,C. Akinlar, Y. Gene, " Edge drawing:aheuristic approach to robust real-time edge detection" ,ICPR,to be published)。由于输入的是链接的边界,EDLines只要对其进行分割或融合,加上验证就可以完成线段检测。但是,通过分析发现,EDLines检测方法存在以下几个关键问题。第一,对于特定环境中的特定线段检测,该方法的免参数调节特性实质上是一种缺陷。在不同的应用中,对所要检测的线段和检测中受到的干扰是不同的。在一种特定环境中,要到达一个比较理想的检测效果,需要在该环境中按检测要求,进行大量实验,确定针对该环境及其目标的参数才能完成。免参数调节是一种普适性质,与实际应用的最优化方法是相悖的。
第二,线段检测采用了门限为I像素的最小二乘法,固定的门限降低了检测精度。由于其免参数性质,I像素的门限不能改变,这直接导致了该算法只能检测曲率变化几乎为O的理想直线,从其实际的检测结果看,具有小幅变化非零曲率的线段往往被分割为多个小线段。如果被检测线段要求一定的长度,这种分割特性会大幅降低检测精度。第三,该算法的验证过程依赖梯度方向,而且跳过对长线段的验证。实际上,由于输入为Edge drawing按梯度方向产生的点集,而验证过程仍然使用梯度方向作为依据,降低了验证意义。而且采用仅验证短线段,对长线段不做验证的策略,虽然减少了计算量,但降低了验证效果。因此,该算法的精度与LSD相比,并没有很大改善。(3)基于边界跟踪的线段检测 的概念最早由Etemadi在1992年提出(A. Etemadi, " Robust segmentation ofedge data" , Conf. on Image Processing andits Applications, USA, 1992, pp. 311-314),这种方法使用由边缘检测产生的边界点信息,通过沿着边界点组成的边界移动,将相邻的边界点链接为曲线,再根据一定的准则对曲线进行分割,从而得到线段。Etemadi的算法的优点是简单快速,缺点是线段检测精度较低,在结果图像中残留有较多的仅有5、6像素长的短线段。这些年,Etemadi算法虽然较多地应用在各种视觉任务中,但一直没有多少改进,仍停留在上世纪90年代的水平。目前线段检测的发展趋势基本上是围绕梯度信息展开的,虽然精度和效率较以往有了较大提高,但由于近年的算法过于依赖梯度信息,忽视了边界本身的几何信息,以及缺乏有效的预处理和后处理手段,因而线段检测的创新和改进余地还是很大的。而工程应用仍迫切需要线段检测方法的速度和精度有较大的提高。

发明内容
本发明要解决的技术问题是为了克服现有技术中的不足,本发明提供一种快速识别数字图像中直线段的检测方法,这种方法采用了与以往国内外惯用的基于霍夫变换理论方法的不同理论,结合了数字图像中像素的梯度信息及几何特征,应用统计学方法,能够快速准确地检测图像中具有给定几何特征值的直线段。通过分析和比较近年来国际上流行的线段检测方法和这种方法的计算复杂度,其识别速度和准确性在一定程度上达到,甚至超过了目前已知的国际同类方法,从而具备了较好的工业应用价值和学术理论价值。( I)由于目前国际主流直线段检测方法普遍采用了无参数化设计,降低了人工干预程度,这种设计在某些方面具有一定优势,但在工业生产实际应用中,由于实际要求千差万别,无参数化的设计仅根据其预设的内部逻辑进行检测,会产生大量无用信息,无法满足工业级应用对检测速度和准确性的要求。本发明通过要求人工输入或设定四个参数,即线段长度、线段曲率变化程度、试探性链接像素数和线段融合范围,根据外界要求和实施条件,自动改变算法内部逻辑和计算量,较之无参数化设计,在对所要检测的直线段具有特定要求的工业应用中,能以适宜的速度给出准确的结果。(2)根据所使用理论分类,目前常用的直线段检测方法大致包括基于霍夫变换原理、梯度信息和几何信息三类。由于霍夫变换计算量过大,采用该原理的方法效率低下,精度一般,近年比较有代表性的是2008年诞生的KHT方法。梯度信息方法在速度上有较大突破,但精度上仍与传统的霍夫变换方法区别不大,近来的典型方法为2011年出现的EDLines方法。几何信息方法常年来没有大的突破,依然停留在上世纪90年代的水平,典型的如1992年诞生的Etemadi方法。本发明结合了梯度信息和几何特征两种方法,规避了EDLines方法使用单一梯度信息并集成固化的前期边界检测方法的设计思路,通过分离前期边界检测和后期线段检测,使得本发明可以模块化地与任何边界检测方法搭配,完成检测任务,并且本发明并不依赖单一的梯度信息,而是根据给定几何参数,有针对性地开展检测任务,在检测过程中使用统计学方法对检测结果进行实时修定。通过效果对比和计算复杂性分析,本发明的速度明显高于KHT方法和Etemadi方法,略低于EDLines方法;其准确度明显高于KHT方法和Etemadi方法,高于EDLines方法。本发明解决其技术问题所采用的技术方案是一种快速识别数字图像中直线段的检测方法,包括以下步骤(a)输入具有单位像素宽的二值图像,所述的二值图像由前景像素和背景像素两种像素组成,前景像素指包含某些图形信息的像素点,背景像素指不包含图形信息的像素点由边缘检测提供二值图像,再使用骨骼化方法得到具有单位像素宽的二值图像;
(b)设定待检测直线段的长度参数、变化参数、像素参数和范围参数长度参数指最终检测结果中可接受直线段的最小长度;变化参数指对直线段曲率变化程度的容忍度,容忍度越大,则所检测到的直线段越接近曲线段,即直线段由几段方向具有明显差异的子线段组成;像素参数指直线段局部曲率发生明显变化时,试探性链接的像素数目;范围参数指线段融合范围参数;(C)获得粗糙直线段;(d)细分已检测到的直线段;(e)链接临近的与当前直线段的方向值之差小于差异阀值的直线段所述的方向值是对前景像素的临域相对于其中心位置的方向量化定义;所述的差异阀值指方向值之差的阀值,用于判断两条直线段方向是否相同的量化标准;(f)返回所找到的直线段。所述的步骤(C)的具体步骤为(Cl)定义方向值、方向值之差和差异阀值;(c2)按一定顺序对步骤(a)中输入的二值图像进行扫描,根据当前的图像扫描顺序确定特定方向值,所述的特定方向值指与代表扫描方向的方向值的差不超过差异阀值的所有指向未扫描区域的方向值;(c3)当发现前景像素时,暂停扫描,以前景像素为中心,只检测步骤(c2)中所述的特定方向值所指向的临域,如果发现前景像素,则继续检测步骤(c2)中所述的特定方向值指向的临域,重复这一过程,直至临域内未发现前景像素或抵达图像边界为止;(c4)试探性链接确定起始方向值,所述的起始方向值是除去步骤(c2)中所述的特定方向值后,与扫描方向临近但指向未扫描区域的方向,所述的临近是指在图像空间中2个像素之间没有间隔其它像素;以步骤(c3)中发现的最后一个前景像素为起点,检查起始方向值所指向的临域是否具有前景像素;若发现新前景像素,则设置旧前景像素为背景像素,记录其方向值并试探性链接新前景像素;重复该过程直至所链接的前景像素总数等于像素参数,或在总数未达到像素参数前未发现新前景像素;(c5)在试探性链接过程中,建立一个临时数据结构和一个用于永久保存的永久数据结构,所述的永久数据结构包括临时区域和永久区域,记录每个方向值的像素数并动态获取在当前时刻的最大方向值,所述的方向值的像素数指取该方向值的前景像素个数,所述的最大方向值指具有最多前景像素个数的方向值所有在试探性链接过程中产生的每个方向值的像素数被记录在一个初始化后的临时数据结构中;在每次试探性连接中,若已链接的前景像素的个数未达到像素参数且当前像素周围没有发现新前景像素,则检查在试探性链接过程中所链接的前景像素的个数是否超过长度参数,若超过,则记录已链接的所有像素,并将它们标识为一条直线段,若未超过,则丢弃这些像素;若已链接的前景像素的个数达到像素参数且当前像素周围仍存在新前景像素,则将当前像素的方向值和上一次试探性链接的方向值记录在永久数据结构的临时区域中,并开始根据待链接前景像素的方向值与最大方向值的差,判断是否继续链接;(c6)如果最大方向值和待链接前景像素的方向值之差小于差异阀值,则链接该像素并在永久数据结构的临时区域中记录其方向值,否则在当前像素位置再次启动试探性链接;·(c7)在试探性链接结束时,计算临时数据结构中的最大方向值和永久数据结构临时区域中的最大方向值之差如果差值小于差异阀值,则将临时数据结构中由试探性链接保存的前景像素和对应的方向值保存在永久数据结构的临时区域中,重复步骤(c6),直至未发现新前景像素、抵达图像边界为止;然后再根据长度参数判断是否将永久数据结构临时区域中的前景像素保存至永久区域并重新初始化临时数据结构;如果差值大于差异阀值,则中止链接,根据长度参数判断是否将永久数据结构临时区域中的前景像素保存至永久区域并重新初始化临时数据结构。前景像素和背景像素分别定义为具有非O值像素和O值像素,或者分别定义为值为255的像素和值小于255的像素。所述的步骤(c2)中,图像扫描顺序按从上至下,从左至右进行。所述的步骤(cI)中方向值的定义由滤波窗口和方向度量单位产生,完成方向值和方向值之差的定义后,再定义差异阀值。所述的步骤(Cl)中,将数字图像中所使用的二维滤波函数的离散值的个数及其分布形状作为滤波窗口,滤波窗口大小为3X3,方向值可以由整数值定义,也可以是角度值或弧度值。定义方向值后,就可以量化不同方向之间的差异,即根据差异准则来计算方向值之差,所述的差异准则是指两条直线方向偏差在差异阀值以内,即视作具有相同方向的直线,例如,计算两个方向之间较小或较大的夹角,取其中之一为方向值之差。一般地,当方向值为角度值或弧度值时,相应的差异阀值可以是45°或即当两
条直线的方向值之差小于45°或$时,这两条直线段被视为具有相同的方向。方向值由整数值定义,定义如下设X轴正方向的方向值为0,按逆时针方向,每隔45°的方向值依次为1、2、3、4、5、6、7 ;方向值之差由下式给出if I dirl_dir2 | > 4 t h e n difference = 8- | dirl_dir2 | ; elsedifference=|dirl_dir2|.其中dirl和dir2分别表示两条直线段的方向值,difference代表dirl和dir2的差值;差异阀值定义为2。即当两条直线段的方向值之差小于2时,这两条直线段被视为具有相同方向值的直线段。所述的步骤(c2)中,特定方向值为6、7和O。通过在计算机上运行基于Visual Studio开发且采用了本发明步骤(c)方法的实验程序,对大量图像进行处理并通过调查由步骤(C)生成的永久数据结构永久区域中每条直线段的方向值信息,发现小幅变化曲率的理想直线段的方向值信息普遍具有高斯分布特征,即仅有一个明显峰值且该峰值是最大方向值; 而曲线段则具有至少两个以上的峰值。根据这一发现,存储于永久数据结构永久区域中的每条直线段所对应的方向值信息都会被检测,当其最大方向值和次大方向值的比超过人工输入的变化参数时,既认为该线段是曲线段并开始分割。因此,所述的步骤(d)的具体步骤为(dl)检测存储于永久数据结构永久区域中的每条直线段所对应的方向值信息,当直线段的最大方向值和次大方向值之比超过变化参数时,则该直线段为曲线段并进行分割;(d2)对于步骤(dl)中发现的曲线段,从其任意端点开始,逐一检查每个像素的方向值并在初始化后的临时数据结构中记录方向值,如果该方向值与临时数据结构中已记录的任意方向值之差大于差异阀值,则标记这个像素为潜在分割点并初始化临时数据结构;重复上述步骤,直至曲线段上的所有点都被检测过;(d3)计算每两个潜在分割点之间的距离,如果距离不小于长度参数,则将该曲线段在这两个潜在分割点进行分割。通过步骤(C)和步骤(d)的检测与分割,图像中可能存在方向值差异小于差异阀值,且端点间距离小于长度参数的直线段,当前子程序会试图融合多条具有这些特征的直线段,使之形成单一直线段。步骤(e)的最大难点是如何按当前直线段的大体走向来探索其附近的直线段。通过在计算机上运行基于Visual Studio开发且采用了本发明步骤(c)和步骤(d)方法的实验程序,对大量图像进行处理并通过调查运行结果,发现直线段曲率在其中点附近变化程度较小,即中点附近的像素方向值基本反映了直线段的大体走向。因此,所述的步骤(e)的具体步骤为取以中点或者在中点附近不超过50%长度参数的区域内的一点为中心,满足长度参数的子线段,以其方向值为样本,分别从当前直线段两个端点出发,按样本为走向进行搜索,如果发现与当前直线段的方向值之差小于差异阀值的直线段,则将这两条直线段进行融合;反复多次,直到不再存在可融合的直线段为止。所述的步骤(e)中,取以当前直线段的中点为中心,满足长度参数的子线段,以该子线段的方向值作为样本。本发明中所述的临域与本领域技术人员所公知的定义相同,即是指以当前像素为中心的滤波窗口内,除当前像素以外的所有像素组成的集合。本发明的有益效果是,本发明一种快速识别数字图像中直线段的检测方法,(I)由于本发明是用计算机程序实施的,主要是通过分析程序的计算复杂度对检测速度进行评估。在计算复杂度上,本发明的步骤(C)是所需计算量最大的部分,由于这一部分不像霍夫变换那样对每个像素进行无差别的投影,该部分仅对非零像素及与之相邻的像素进行分析,因此它的计算复杂度为0(1 *s),其中I是最长直线段的长度,s是线段总个数,而霍夫变换的计算复杂度为O (η2),η是图像的一维。
进一步的分析表明I和s之间存在着非常密切的关系。如果表示线段长度的I非常大,那么表示线段总数的s就会非常小。因为线段越长,其所占据的图像空间就越多,一般地,这会导致线段总数的下降。相反地,如果线段总数很多,那么最长线段的长度就不会大。因此,在I和s之间存在一种相互平衡的关系。因此,本发明步骤(C)所需计算量远小于 O (η2)。步骤(d)的复杂度是Max (0(s),0(1 · d)),其中d代表通过执行具有O(s)复杂度的搜索所找到的曲线段总数。由于d不可能大于S,步骤(d)的计算复杂度和步骤(C)一样,是 O (I · s)。步骤(e)的复杂度是O(S)。综上,本发明所适用的计算机程序的计算复杂度是0(1 · S),而根据在文献“Robust Line Detection Using Two-orthogonal Direction Image Scanning”(K. Yang, S. S. Ge, H. He, Computer Vision and Image Understanding, vol. 115, no. 8, pp. 12 07-1222,Aug. 2011.)中对BU-Scan过程的分析,TODIS的复杂度至少是0 (n2)。在复杂度分析上,本发明的检测速度是优于目前已知的具有较好检测精度的TODIS。(2)本发明的精度直观体现在对数字图片中直线段的检测结果对比上。经过大量的对比,得出本发明的检测精度高于KHT和EDLines,并且本发明的精度不低于T0IDS,而TODIS是目前已知的精度最高的直线段检测方法。


下面结合附图和实施例对本发明进一步说明。图I是本发明的主UML活动图。图2是本发明的具体实施例中方向值的定义图。图3是本发明中步骤(c )的UML活动图。图4是图3中试探性链接m个像素的UML活动图。图5是图3中在3个临时列表中记录当前像素的相关信息的UML活动图。图6是图3中计算searchDir的UML活动图。图7是图3中根据直线段长度进行记录的UML活动图。图8是本发明中步骤(d)的UML活动图。图9是本发明中步骤(e )的UML活动图。图IO是图9中链接端点的UML活动图。图11是图10中找到端点的UML活动图。图12是KHT与本发明检测结果的对比图。图13是EDLines与本发明检测结果的对比图。图14是TODIS与本发明检测结果的对比图。图15是标有方向值的二值图像。图16是标有方向值和路径的二值图像。
具体实施例方式现在结合附图对本发明作进一步详细的说明。
图I给出了本发明的主UML活动图。本发明包括以下步骤(a)输入具有单位像素宽的二值图像,所述的二值图像由前景像素和背景像素两种像素组成,前景像素指包含某些图形信息的像素点,背景像素指不包含图形信息的像素点由边缘检测提供二值图像,再使用骨骼化方法得到具有单位像素宽的二值图像;(b)设定待检测直线段的长度参数、变化参数、像素参数和范围参数长度参数指最终检测结果中可接受直线段的最小长度;变化参数指对直线段曲率变化程度的容忍度,容忍度越大,则所检测到的直线段越接近曲线段,即直线段由几段方向具有明显差异的子线段组成;像素参数指直线段局部曲率发生明显变化时,试探性链接的像素数目;范围参数指线段融合范围参数;(C)获得粗糙直线段;(d)细分已检测到的直线段;
(e)链接临近具有相似方向值的直线段;(f)返回所找到的直线段。下面结合图3至图11的UML活动图,分别对本发明中步骤(C)、步骤(d)、步骤(e)展开描述。这里给出在特定前提条件下,本发明的一种具体实施方式
。特定前提条件包括以下几点图像扫描顺序按从上至下,从左至右进行;滤波窗口大小为3X3。方向值由图2定义;方向值之差由下式给出if I dirl_dir2 | > 4 t h e n difference = 8- | dirl_dir2 | ; elsedifference=|dirl_dir2|.其中dirl和dir2分别表示两条直线段的方向值,difference代表其差值;差异阀值定义为2 ;前景像素和背景像素分别定义为具有非O值和O值的像素。步骤(C)的UML活动图包括图3至图7。图3中变量m表示像素参数,变量minLength表示长度参数,变量nextDirection是保存有3 X 3临域内的搜索起点方向值,长度为8的数组。当程序需要检查当前像素的临域时,会在这个数组中确定第一个要检查的临域像素,然后以之为起点,按与当前扫描方向相反的方向进行检查,在本实施方案中,程序将在搜索起点按逆时针方向检查。nextDirection的索引对应当前像素方向值,比如当前像素值为dir,则起点保存在索引为dir的数组成员nextDirection [dir]中,搜索起点在图3中由变量searchDir表示,它的值由下式给出if dir is even,then searchDir=(dir+7)mod 8;else searchDir=(dir+6)mod8.其中even代表偶数,mod代表取模运算。根据上式,所有方向值对应的起点都可以在程序运行前计算,然后保存在nextDirection数组中。按索引O至索引7的顺序,nextDirection 成员的值依次为 7,7,1,1,3,3,5,5。图 3 中变量 Difference 是 8 X 8 矩阵,每个成员的值对应了一对与之索引值具有相同数值的方向值的差,例如具有索引(3,5)的成员Difference [3,5]保存的是方向值3与方向值5之间的差,这个差由上文的方向值之差公式给出。由于方向值的个数固定为8个量,所以它们之间的差值可以预先计算,然后保存在8X8的Difference矩阵里,省去后续的重复计算,则Difference由下式给出
权利要求
1.ー种快速识别数字图像中直线段的检测方法,其特征在于,包括以下步骤 (a)输入具有単位像素宽的ニ值图像,所述的ニ值图像由前景像素和背景像素两种像素组成,前景像素指包含图形信息的像素点,背景像素指不包含图形信息的像素点由边缘检测提供ニ值图像,再使用骨骼化方法得到具有単位像素宽的ニ值图像; (b)设定待检测直线段的长度參数、变化參数、像素參数和范围參数长度參数指最終检测结果中可接受直线段的最小长度;变化參数指对直线段曲率变化程度的容忍度,容忍度越大,则所检测到的直线段越接近曲线段,即直线段由几段方向具有明显差异的子线段组成;像素參数指直线段局部曲率发生明显变化吋,对未扫描区域进行试探性链接的像素数目;范围參数指线段融合范围參数; (C)获得粗糙直线段; (d)细分已检测到的直线段; Ce)链接临近的与当前直线段的方向值之差小于差异阀值的直线段所述的方向值是对前景像素的临域相对于其中心位置的方向量化定义;所述的差异阀值指方向值之差的阀值,用于判断两条直线段方向是否相同的量化标准; (f)返回所找到的直线段。
2.如权利要求I所述的ー种快速识别数字图像中直线段的检测方法,其特征在于所述的步骤(C)的具体步骤为 (Cl)定义方向值、方向值之差和差异阀值; (c2)按一定顺序对步骤(a)中输入的ニ值图像进行扫描,根据当前的图像扫描顺序确定特定方向值,所述的特定方向值指与代表扫描方向的方向值的差不超过差异阀值的所有指向未扫描区域的方向值; (c3)当发现前景像素吋,暂停扫描,以前景像素为中心,只检测步骤(c2)中所述的特定方向值所指向的临域,如果发现前景像素,则继续检测步骤(c2)中所述的特定方向值指向的临域,重复这ー过程,直至临域内未发现前景像素或抵达图像边界为止; (c4)试探性链接确定起始方向值,所述的起始方向值是除去步骤(c2)中所述的特定方向值后,与扫描方向临近但指向未扫描区域的方向,所述的临近是指在图像空间中2个像素之间没有间隔其它像素;以步骤(c3)中发现的最后ー个前景像素为起点,检查起始方向值所指向的临域是否具有前景像素;若发现新前景像素,则设置旧前景像素为背景像素,记录其方向值并试探性链接新前景像素;重复该过程直至所链接的前景像素总数等于像素參数,或在总数未达到像素參数前未发现新前景像素; (c5)在试探性链接过程中,建立一个临时数据结构和一个用于永久保存的永久数据结构,所述的永久数据结构包括临时区域和永久区域,记录每个方向值的像素数并动态获取在当前时刻的最大方向值,所述的方向值的像素数指取该方向值的前景像素个数,所述的最大方向值指具有最多前景像素个数的方向值所有在试探性链接过程中产生的每个方向值的像素数被记录在一个初始化后的临时数据结构中; 在每次试探性连接中,若已链接的前景像素的个数未达到像素參数且当前像素周围没有发现新前景像素,则检查在试探性链接过程中所链接的前景像素的个数是否超过长度參数,若超过,则记录已链接的所有像素,并将它们标识为一条直线段,若未超过,则丢弃这些像素;若已链接的前景像素的个数达到像素參数且当前像素周围仍存在新前景像素,则将当前像素的方向值和上一次试探性链接的方向值记录在永久数据结构的临时区域中,并开始根据待链接前景像素的方向值与最大方向值的差,判断是否继续链接; (c6)如果最大方向值和待链接前景像素的方向值之差小于差异阀值,则链接该像素并在永久数据结构的临时区域中记录其方向值,否则在当前像素位置再次启动试探性链接;(c7)在试探性链接结束时,计算临时数据结构中的最大方向值和永久数据结构临时区域中的最大方向值之差 如果差值小于差异阀值,则将临时数据结构中由试探性链接保存的前景像素和对应的方向值保存在永久数据结构的临时区域中,重复步骤(c6),直至未发现新前景像素、抵达图像边界为止;然后再根据长度參数判断是否将永久数据结构临时区域中的前景像素保存至永久区域并重新初始化临时数据结构; 如果差值大于差异阀值,则中止链接,根据长度參数判断是否将永久数据结构临时区域中的前景像素保存至永久区域并重新初始化临时数据结构。
3.如权利要求2所述的ー种快速识别数字图像中直线段的检测方法,其特征在于前景像素和背景像素分别定义为具有非O值像素和O值像素,或者分别定义为值为255的像素和值小于255的像素。
4.如权利要求2所述的ー种快速识别数字图像中直线段的检测方法,其特征在于所述的步骤(c2)中,图像扫描顺序按从上至下,从左至右进行。
5.如权利要求2所述的ー种快速识别数字图像中直线段的检测方法,其特征在于所述的步骤(Cl)中方向值的定义由滤波窗口和方向度量单位产生,完成方向值和方向值之差的定义后,再定义差异阀值。
6.如权利要求5所述的ー种快速识别数字图像中直线段的检测方法,其特征在于所述的步骤(Cl)中,将数字图像中所使用的ニ维滤波函数的离散值的个数及其分布形状作为滤波窗ロ,滤波窗ロ大小为3 X 3,方向值可以由整数值定义,也可以是角度值或弧度值。
7.如权利要求6所述的ー种快速识别数字图像中直线段的检测方法,其特征在于当方向值为角度值或弧度值时,相应的差异阀值是45°或マ,即当两条直线的方向值之差小于45°或时I,这两条直线段被视为具有相同的方向。
8.如权利要求6所述的ー种快速识别数字图像中直线段的检测方法,其特征在于方向值由整数值定义,定义如下设X轴正方向的方向值为O,按逆时针方向,每隔45°的方向值依次为1、2、3、4、5、6、7 ;方向值之差由下式给出if Idirl_dir2I Mthen difference=8-1dirl-dir2 ;else difference=|dirl-dir2|.其中dirl和dir2分别表示两条直线段的方向值,difference代表dirl和dir2的差值;差异阀值定义为2。
9.如权利要求8所述的ー种快速识别数字图像中直线段的检测方法,其特征在于所述的步骤(c2)中,特定方向值为6、7和O。
10.如权利要求I所述的ー种快速识别数字图像中直线段的检测方法,其特征在于所述的步骤(d)的具体步骤为 (dl)检测存储于永久数据结构永久区域中的每条直线段所对应的方向值信息,当直线段的最大方向值和次大方向值之比超过变化參数时,则该直线段为曲线段并进行分割;(d2)对于步骤(dl)中发现的曲线段,从其任意端点开始,逐一检查每个像素的方向值并在初始化后的临时数据结构中记录方向值,如果该方向值与临时数据结构中已记录的任意方向值之差大于差异阀值,则标记这个像素为潜在分割点并初始化临时数据结构;重复上述步骤,直至曲线段上的所有点都被检测过; (d3)计算每两个潜在分割点之间的距离,如果距离不小于长度參数,则将该曲线段在这两个潜在分割 点进行分割。
11.如权利要求I所述的ー种快速识别数字图像中直线段的检测方法,其特征在于所述的步骤(e)的具体步骤为 取以当前直线段的中点或者在中点附近不超过50%长度參数的区域内的一点为中心,满足长度參数的子线段,以其方向值为样本,分别从当前直线段两个端点出发,按样本为走向进行搜索,如果发现与当前直线段的方向值之差小于差异阀值的直线段,则将这两条直线段进行融合;反复多次,直到不再存在可融合的直线段为止。
12.如权利要求11所述的ー种快速识别数字图像中直线段的检测方法,其特征在于所述的步骤(e)中,取以当前直线段的中点为中心,满足长度參数的子线段,以该子线段的方向值作为样本。
全文摘要
本发明涉及对一种对图像内特定图形的定标方法,特别涉及一种快速识别数字图像中直线段的检测方法,包括以下步骤a、输入具有单位像素宽的二值图像;b、设定待检测直线段的长度参数、变化参数、像素参数和范围参数;c、获得粗糙直线段;d、细分已检测到的直线段;e、链接临近的与当前直线段方向值之差小于差异阀值的直线段方向值是对前景像素的临域相对于其中心位置的方向量化定义;差异阀值指方向值之差的阀值,用于判断两条直线段方向是否相同的量化标准;f、返回所找到的直线段。本发明的检测速度是优于目前已知的具有较好检测精度的TODIS;检测精度高于KHT和EDLines,并且本发明的精度不低于TOIDS。
文档编号G06T7/00GK102819743SQ201210289399
公开日2012年12月12日 申请日期2012年8月14日 优先权日2012年8月14日
发明者贾靓, 闵革勇 申请人:常州大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1