一种直线检测方法及系统的制作方法
【技术领域】
[0001] 本发明属于图像处理技术领域,尤其涉及一种直线检测方法及系统。
【背景技术】
[0002] 随着数字信号处理技术和计算机技术的发展,图像处理正得到广泛而深入的研 宄。图像特征提取是图像处理的一项关键技术,直线特征是图像中物体的基本特征之一,是 目标识别和视觉感知的重要线索,直线往往对应着目标的轮廓线或者边界。在图像分析和 模式识别中,根据直线检测结果可以形成线性中层符号描述,从而使图像的表示更简洁,便 于完成后续的图像识别任务。因而,直线检测在航空、卫星图像中道路检测、军事侦察、图像 制导等领域有着广泛的应用。
[0003] 霍夫变换(HoughTransform)是现有技术常用的检测包括直线在内的参数化曲 线的方法。标准霍夫变换的基本思想是将图像空间的一点变换到参量空间的曲线或曲面, 具有同一参量特征的点经变换后在参量空间中相交,通过判断焦点处的累积程度来完成特 征图形的检测。该方法具有优异的鲁棒性和极佳的抗干扰能力,对图像中的噪声不敏感,能 够较好地处理局部遮挡、覆盖等情况。但由于霍夫变换是一种穷尽式搜索,对于大图像的检 测,计算复杂度和空间复杂度都很高,巨大的计算量阻止了它在实时性要求很高的领域的 应用。
[0004] 为了解决标准霍夫变换存在的上述问题,现有技术还提出了多种改进的霍夫变 换,例如概率霍夫变换(PHT)和随机霍夫变换(RHT)等。PHT是将图像数据映射到参数域中 具有更大概率的单元,而非所有单元,可以有效降低时间和空间开销;RHT是通过对图像中 像素点的随机采样,避免标准霍夫变换巨大的计算量,且降低了内存需求,但RHT在处理复 杂图像时,会引入大量无效采样和累计,使算法性能大为降低。
[0005] 但对于图像中点比较密集的情况,标准霍夫变换的直线检测会穷尽式搜索所有 点,计算量大,且计算得到的P非常大,则P-0平面也将非常大,耗费大量的存储空间。快 速的霍夫变换直线检测虽然能降低运算量,但是内存空间却增加了,而PHT会对断裂比较 敏感,所以标准霍夫变换和改进的霍夫变换直线检测并未解决虚直线检测中运算量大、存 储空间大的问题,同时,在检测过程中,由于丢失了线段的端点和长度信息,因而不能直接 定位直线段。
【发明内容】
[0006] 本发明的目的在于提供一种直线检测方法,旨在解决现有的标准霍夫变换及其各 种改进算法由于运算量大、占用存储空间大、检测速度慢而不适用于检测虚直线,且由于检 测过程丢失了线段端点和长度信息而不适用于直线段定位的问题。
[0007] 本发明是这样实现的,一种直线检测方法,所述方法包括以下步骤:
[0008] 从待处理图像中抽取种子点,得到种子点集合和补点集合;
[0009] 构建累积矩阵并初始化,所述累积矩阵的第一维下标为种子点的序号,所述累积 矩阵的第二维下标为直线方向角量化值的编号,所述累积矩阵中的每一元素作为一个累积 单元,各所述累积单元的初始值均为0 ;
[0010] 求解所述种子点集合中各种子点与所述补点集合中各补点之间连线的方向角;
[0011] 按照种子点-补点连线方向角与相邻方向角量化值的距离成反比的方式,对所述 累积矩阵中相应的累积单元进行累积;
[0012] 对经累积后的所述累积矩阵取门限来得到直线参数。
[0013] 本发明的另一目的在于提供一种直线检测系统,所述系统包括:
[0014] 抽取模块,用于从待处理图像中抽取种子点,得到种子点集合和补点集合;
[0015] 构建模块,用于构建累积矩阵并初始化,所述累积矩阵的第一维下标为种子点的 序号,所述累积矩阵的第二维下标为直线方向角量化值的编号,所述累积矩阵中的每一元 素作为一个累积单元,各所述累积单元的初始值均为 0 ;
[0016] 计算模块,用于求解所述种子点集合中各种子点与所述补点集合中各补点之间连 线的方向角;
[0017] 累积模块,用于按照种子点-补点连线方向角与相邻方向角量化值的距离成反比 的方式,对所述累积矩阵中相应的累积单元进行累积;
[0018] 检测模块,用于对经累积后的所述累积矩阵取门限来得到直线参数。
[0019] 本发明提出的直线检测方法及系统是从待处理图像中抽取种子点,以种子点及种 子点和补点之间连线的方向角作为直线参数来构造新的累计矩阵,并按种子点-补点连线 方向角与相邻方向角量化值的距离成反比的方式,对累积矩阵进行累积,最后对累积矩阵 取门限即可得到直线参数。由于采用了新的累积矩阵和二维反正切查找表的方法,相对于 现有的标准霍夫变换及其各种改进算法,减小了运算量,节省了内存空间,并可精确定位直 线段,非常适用于在嵌入式系统等运算和存储资源有限情况下对虚直线的快速定位。
【附图说明】
[0020] 图1是本发明实施例提供的直线检测方法的流程图;
[0021] 图2是本发明实施例中,求解方向角的步骤的详细流程图;
[0022] 图3a是本发明实施例的实验中,从一个角度采集到的隐形二维码图;
[0023] 图3b是本发明实施例的实验中,从另一个角度采集到的隐形二维码图;
[0024] 图4是本发明实施例提供的直线检测系统的结构图;
[0025] 图5是图3中,计算模块的结构图。
【具体实施方式】
[0026] 为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对 本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并 不用于限定本发明。
[0027] 为了能够实现对虚直线的快读检测,本发明实施例提出的直线检测方法及系统是 从待处理图像中抽取种子点,以种子点及种子点和补点之间连线的方向角作为直线参数来 构造新的累计矩阵,按种子点-补点连线方向角与相邻方向角量化值的距离成反比方式, 对累积矩阵进行累积,最后对累积矩阵取门限即可得到直线参数。
[0028] 图1示出了本发明实施例提供的直线检测方法的流程,包括以下步骤:
[0029]S1;从待处理图像中抽取种子点,得到种子点集合和补点集合。
[0030] 其中,种子点集合的各元素分别为种子点的坐标,补点集合的各元素分别为补点 的坐标。本发明实施例中,补点是指待处理图像的全部图形上的全部像素点除去种子点后, 剩余的各像素点。
[0031] 假设待处理图像的全部图形上的全部像素点的集合为D= {Qt= (xt,yt),t= 1,2,3...1(},种子点集合为2=%=0^^),1 = 1,2,3...,1},且2^〇,则补点集合可 表示为B=D-Z= {Bj= (x』,yp,j= 1,2, 3. ? ?K-L}。
[0032] 根据图像成像特点,图像中心区域的扭曲、失真最小,故可在待处理图像的中心区 域抽取部分点作为种子点。
[0033] S2:构建累积矩阵\xs并初始化,累积矩阵的第一维下标为种子点的序号,累积矩 阵的第二维下标为直线方向角量化值的编号,以使得累积矩阵中各累积单元的初始值均为 0,
[0034] 本发明实施例中,累积矩阵可表示为\xs,其中,L为种子点集合中的元素个 数,S为种子点与补点连线的方向角的量化级数量,也称为种子点与补点连线的方向角 a(0<a< 31)的等份数,参数空间内累积矩阵\xs中的每一元素分别对应种子点和 过种子点直线的方向角量化值,累积矩阵\xs中的每一元素作为一个累积单元,累积矩阵 AuS中第i行且第j列元素可表示为A(i,j),则A(i,j)对应过种子点Zi方向角为a』= (j-1)XA0,j= 1,2,…,S,其中,A0 = 3i/S是直线方向角的量化间隔。
[0035]S3:求解种子点集合中各种子点与补点集合中各补点之间连线的方向角。
[0036]假设Ax为一种子点与一补点之间的水平间距,Ay为种子点与补点之间的垂直 间距,f(AX,Ay)为关于水平间距Ax和垂直间距Ay的函数,则该种子点与该补点间连 接的方向角为a,且满足《 =arctanj"|^ = /(Ax_,4v)。故而,根据种子点集合中种子点的 坐标以及集合中补点的坐标,即可得到种子点与补点之间连线的纵横坐标差,之后可通过 反正切和除法运算求得方向角,也可通过直接查表的方式求得方向角。
[0037] 为了减少运算量,本发明实施例采用直接查表方式求解方向角,同时考虑到水平 间距Ax和垂直间距Ay均是整数,故本发明实施例在步骤S3之前,可包括预存一张用Qn 定点数表示的二维反正切查找表的步骤,则如图2所示,步骤S3可进一步包括以下步骤:
[0038]S31:从补点集合中选取当前补点。
[0039]S32:遍历种子点集合,分别计算当前补点与种子点集合中各种子点之间的纵横坐 标差。
[0040] S33 :查找预存的二维反正切查找表,得到与每一纵横坐标差对应的方向角,之后 返回步骤S31,以选取下一补点作为当前补点而参与运算,直至遍历补点集合中的全部补 点。
[0041]S4:按照种子点-补点连线方向角与相邻方向角量化值的距离成反比的原则,对 累积矩阵中相应的累积单元进行累积。
[0042] 本发明实施例中,相邻方向角是指同一种子点分别与各补点之间的方向角中,相 邻排列的两个方向角的量化值。
[0043] 则步骤S4即是说,设0i,k是种子点i'与补点k连线的方向角,aam是与 0r,k最邻近的方向角量化值,对累积矩阵中的累积单元A(i,j)和A(i,j+1),分别执行:
[0044]A(i,j)=A(i,j)+(aJ+「0ik)
[0045] A(i,