CN105513044B - 一种基于统计度量直线特征的数字直线段识别方法 - Google Patents

一种基于统计度量直线特征的数字直线段识别方法 Download PDF

Info

Publication number
CN105513044B
CN105513044B CN201510812214.3A CN201510812214A CN105513044B CN 105513044 B CN105513044 B CN 105513044B CN 201510812214 A CN201510812214 A CN 201510812214A CN 105513044 B CN105513044 B CN 105513044B
Authority
CN
China
Prior art keywords
dss
read
point
value
current
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201510812214.3A
Other languages
English (en)
Other versions
CN105513044A (zh
Inventor
贾靓
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Changzhou Changda Science and Technology Park Management Co.,Ltd.
Original Assignee
Changzhou University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Changzhou University filed Critical Changzhou University
Priority to CN201510812214.3A priority Critical patent/CN105513044B/zh
Publication of CN105513044A publication Critical patent/CN105513044A/zh
Application granted granted Critical
Publication of CN105513044B publication Critical patent/CN105513044B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Image Analysis (AREA)

Abstract

本发明公开了一种基于统计度量直线特征的数字直线段识别方法,包括以下步骤:找到至少两个相邻的点,持续搜索直至未发现与当前DSS相邻的点,评估当前DSS的接纳点和未拒绝点,生成方向值的直方图并根据直方图多峰性分割当前DSS,评估当前DSS宽度并根据宽度进行缩减;根据DSS方向,将DSS集合中的DSS分组;根据DSS间的欧几里得距离,将每组中的DSS细分为小组;尝试融合每个小组内的DSS;本发明能对给定的边缘图像,通过用户一次性输入的,在一定范围内的一个整数值和一个实数值,分别控制像素连通性和直线特征,实现将任意边缘分割为数字直线段,达到识别边缘图像中数字直线段的目的;本发明对噪声具有良好的适应性,通过调整用户输入的两个参数,可以基于不同精度分割边缘。

Description

一种基于统计度量直线特征的数字直线段识别方法
技术领域
本发明是一种根据统计学方法,对数字图像边缘检测结果中的前景像素进行分割,得到具有直线特征的前景像素集合的一种计算方法。本发明特别适用于将数字图像边缘检测结果中的数字边缘分割为具有泛化连通性的数字直线段。
背景技术
数字直线(Digital Straight Line,DSL)定义为其中0<a<b且gcd(a,b)=1,(x,y)表示数字图像中像素的坐标。数字直线段(Digital Straight Segment,DSS)是DSL中由起止端点确定的一部分。对于DSS,存在2条斜边(leaning line)ax-by=μ和ax-by=μ+|a|+|b|-1用于界定DSS,DSS在斜边上的点称为斜点(leaning point)。弱外界点(weakly exterior point)是靠近斜边,但不包含DSS的点,且在直线x-by=μ-1和ax-by=μ+|a|+|b|上的点。根据给定边缘图像,识别DSS或将边缘分割为DSS所涉及的核心问题是如何评估DSS的方向和起止位置。识别DSS的计算方法根据其对像素连通性的要求,可大致分为要求4连通或8连通的算法和没有4连通或8连通要求的算法。
虽然基于4连通、8连通的算法具有很高的运算效率,但正如文献[3]和[6]所述,此类算法无法有效处理被噪声污染的数字图像和无法保证4连通或8连通的数字图像。为了进一步提高运算效率,此类算法往往还添加了除4连通、8连通以外的其它假设条件,例如文献[1],[2]和[4]所述算法,其不足是进一步缩小了算法的应用范围。
没有4连通或8连通要求的算法往往通过数学方法对前景像素进行变换,使之适用于基于4连通和8连通算法的技术,并使用这些技术完成处理,变换过程复杂且运算代价较高;不使用变换的算法,又存在设计简单,错误率较高的问题。文献[5]中的算法使用一种贪婪策略探索图像空间,但这种简单的贪婪策略往往导致了错误的识别结果。文献[5]的算法缺陷在文献[6]中通过能产生条状多边形的斜率覆盖(tangential cover)进行弥补,由于斜率覆盖是为1像素宽的数字边缘设计的,DSS几何宽度或厚度(thickness)大于1像素的DSS的边界必须首先被提取并被组织成一条由边界组成的链条(chain),才能应用斜率覆盖。提取对于现实图像而言,会比较困难而且容易产生错误。
[1]J.-O.Lachaud,M.Said,″Two efficient algorithms for computing thecharacteristics of a subsegment of a digital straight line″,DiscreteAppl.Math.,vol.161,no.15,pp.2293-2315,Oct.2013.
[2]J.S.D.Ouattara,E.c Andres,G.L.-S.,R.Zrour,T.M.-Y.Tapsoba,″Remainder approach for the computation of digital straight line subsegmentcharacteristics″,Discrete Appl.Math.,vol.183,pp.90-101,Mar.2015.
[3]I.Debled-Rennesson,R.Jean-Luc,J.Rouyer-Degli,″Segmentation ofdiscrete curves into fuzzy segments″,Electron.Notes in Discrete Math.,vol.12,pp.372-383,Mar.2003.
[4]I.Sivignon,″Fast recognition of a Digital Straight Linesubsegment:Two algorithms of logarithmic time complexity″,DiscreteAppl.Math.,vol.183,pp.130-146,Mar.2015.
[5]L.Buzer,″Asimple algorithm for digital line recognition in thegeneral case″,Pattern Recognition,vol.40,no.6,pp.1675-1684,Jun.2007.
[6]A.Faure,L.Buzer,F.Feschet,″Tangential cover for thick digitalcurves″,Pattern Recognition,vol.42,no.10,pp.2279-2287,Oct.2009.
发明内容
针对上述现有技术的不足,本发明所解决的技术问题主要有以下两点:
1)设计一种计算方法,能对给定的边缘图像,通过用户一次性输入的,在一定范围内的一个整数值和一个实数值,分别控制像素连通性和直线特征,并根据统计学原理,实现将任意边缘分割为数字直线段,达到识别边缘图像中数字直线段的目的。
2)所设计的计算方法,对边缘没有4连通或8连通要求,对噪声具有良好的适应性,通过调整用户输入的两个参数,可以基于不同精度分割边缘。
本发明的技术方案为:一种基于统计度量直线特征的数字直线段识别方法,包括以下步骤:
步骤1:在数字图像空间中,由上至下逐行扫描,在一行中按从左到右的顺序,尝试读取一个与已读取像素紧邻的新像素,一旦发现尚未读取过的前景像素,则需找到至少两个相邻的点;
步骤2:如果当前DSS包含至少两个前景像素,则持续搜索直至未发现与当前DSS相邻的点,否则删除找到的一个前景像素,继续扫描边缘图像;
步骤3:评估当前DSS的接纳点和未拒绝点,
步骤4:生成方向直方图并根据直方图多峰性分割当前DSS,
步骤5:评估当前DSS宽度并根据宽度进行缩减;
步骤6:根据DSS方向,将DSS集合中的DSS分组;
步骤7:根据DSS间的距离,将每组中的DSS细分为小组;
步骤8:尝试融合每个小组内的DSS。
进一步,所述步骤1的具体过程为:
S1.1,初始化一个新的DSS对象,称为当前DSS,并使用所读取的第一个前景像素初始化新的DSSPoint对象,将该DSSPoint对象保存为DSS对象的接纳点;
S1.2,在以该前景像素为圆心且半径为探索半径的圆形范围内,收集前景像素;
S1.3,如果收集到至少1个非圆心的前景像素,则将每个收集到的前景像素都初始化为DSSPoint对象,计算每个DSSPoint对象相对于圆心的方向并将在DSSPoint对象中保存计算结果;否则,结束步骤1;
S1.4,计算收集到的前景像素的平均方向,并找出与平均方向差异最小的DSSPoint对象;
S1.5,将S1.4找到的DSSPoint对象保存为当前DSS对象的接纳点,并根据平均方向对剩余的DSSPoint对象进行分类;
S1.6,在图像空间中删除归属当前DSS对象的DSSPoint对象所对应的前景像素;更新当前DSS的平均中心和边界点。
进一步,所述步骤2的具体过程为:
S2.1,以最后保存的像素为圆心,半径为探索半径的半圆范围内收集前景像素,半圆唯一的直径与当前DSS方向垂直,且半圆位于从圆心出发,依当前DSS方向指向的位置;
S2.2,尝试读取S2.1所收集的,除圆心以外的一个尚未读取过的前景像素;
S2.3,如果未成功读取一个前景像素,执行S2.7,否则根据所读取的前景像素初始化一个新DSSPoint对象并假设该DSSPoint对象被接纳,计算假设条件下的DSS厚度,如果厚度超过探索半径2倍,则返回S2.2,否则执行S2.4;
S2.4,计算当前DSS方向与该DSSPoint对象方向的差异;
S2.5,如果所得差异超过方向差异阀值,则执行S2.51,否则执行S2.52;
S2.51,将该DSSPoint对象保存为当前DSS的未拒绝点,更新归属当前DSS的每个点相对于平均中心的坐标,以及当前DSS的边界点;
S2.52,将该DSSPoint对象保存为当前DSS的接纳点,更新当前DSS方向并在图像空间中永久删除该DSSPoint对象对应的像素;
S2.6,根据接纳点和未拒绝点的图像空间坐标,更新当前DSS平均中心坐标,然后返回S2.2;
S2.7,在图像空间中删除步骤1与步骤2访问过的前景像素。
进一步,所述步骤3中,比较当前DSS中接纳点与未拒绝点的数量,如果未拒绝点的数量是接纳点数量1.5倍,则将接纳点标识为未拒绝点,并将未拒绝点标识为接纳点。
进一步,所述步骤4的具体过程为:
S4.1,比较接纳点的数量和探索半径整数部分的值,如果数量超过值,则生成方向统计,其索引为DSS中每个点的方向的整数部分,值是方向整数部分与索引值相同的点的数量;否则执行S4.11;
S4.2,按方向统计中值的大小降序排列索引;
S4.3,尝试找到方向统计的最大值和次大值,如果方向统计中包含至少2对索引与值,则执行S4.41;否则执行S4.42;
S4.41,比较最大值和次大值,如果次大值达到0.7倍的最大值,则将最大值与次大值对应的索引,记录为分割方向,并在方向统计中删除最大值及其索引,否则返回S4.3;
S4.42,检查分割方向数量,如果至少存在2个分割方向,则按步骤2记录的像素顺序,依次读取当前DSS中尚未被S4.42读取过的接纳点,否则执行S4.8;
S4.5,如果所读取接纳点非当前DSS的最后一个接纳点,则将所读取点的方向与所有分割方向进行比较;否则执行S4.8;
S4.6,如果与所读取点的方向差异最小的分割方向与兼容分割方向不同,则记录新分割方向的出现次数,否则返回S4.42以读取下一个接纳点;
S4.7,如果出现次数大于3次,则将所读取点标记为分割位置并将新分割方向标记为兼容分割方向;否则返回S4.42以读取下一个接纳点;
S4.8,删除第一个分割位置,根据剩余的分割位置,将步骤2中保存接纳点的前后顺序划分为多个区间,对于每个区间所保存的接纳点,初始化一个新的DSS并将接纳点重新保存为该DSS的接纳点;
S4.9,生成S4.8产生的多个DSS的平均中心,并根据线性回归计算每个DSS的方向;
S4.10,对于当前DSS的每个未拒绝点,计算其与S4.8所生成DSS的平均中心之间的距离,将其分配给距离最近的DSS,初始化一个新的DSS集合,并将分割产生的DSS保存在该集合中,结束步骤4;
S4.11,在图像空间中恢复S2.7所删除的,原DSS的未拒绝点,结束步骤4。
进一步,所述步骤5的具体过程为:
S5.1,尝试从步骤4产生的DSS集合中读取一个尚未读取过的DSS;
S5.2,如果存在一个尚未读取过的DSS,则对于所读取DSS中的每个点,计算其在原点为DSS平均中心且X轴正半轴指向DSS方向的坐标系中的坐标;否则结束步骤5;
S5.3,根据所计算坐标值找到所读取DSS的边界点,根据边界点计算DSS厚度,将厚度与探索半径比较;
S5.4,如果厚度超过探索半径的2倍,则将探索半径2倍外的点从DSS中删除;否则返回S5.1;
S5.5,如果图像空间中具有最大二维索引的像素尚未被步骤1读取,则返回步骤1,否则开始步骤6。
进一步,所述步骤6的具体过程为:
S6.1,尝试从DSS集合中读取一个本步骤尚未读取的DSS,如果存在一个尚未被本步骤读取过的DSS,则标记所读取DSS为外DSS,否则结束步骤6;
S6.2,尝试从DSS集合中读取一个本步骤尚未读取的DSS,如果不包括外DSS,存在一个尚未被本步骤读取过的DSS,则标记所读取DSS为内DSS,并计算内DSS与外DSS方向的差异;否则返回S6.1;
S6.3,如果差异不大于方向差异阀值,则遍历DSSGroup集合的成员,如果内DSS尚未被任何成员包含,则找到与内DSS方向差异最小的成员;否则返回S6.2;
S6.4,如果存在一个方向差异最小的成员,则计算内DSS与该成员的方向差异,否则返回S6.2;
S6.5,如果S6.4所计算的差异不大于方向差异阀值,则将内DSS添加进该成员,并更新该成员的方向,返回S6.2;否则,将内DSS添加进键为外DSS的成员,或初始化这样一个成员如果无法找到该成员,返回S6.2;
进一步,所述步骤7的具体过程为:
S7.1,尝试在DSSGroup集合中读取一个尚未读取过的成员,如果存在一个尚未读取过的成员,则检查所读取的成员;否则结束步骤7;
S7.2,如果该成员非空,则找到成员中具有最多接纳点的DSS,并标记该DSS为最大DSS;否则返回S7.1;
S7.3,对于成员中的每个DSS,计算其相对于“原点为最大DSS平均中心且X正半轴指向最大DSS方向的坐标系”的平均中心坐标值;
S7.4,将每个DSS和其平均中心X坐标值作为“键-值”成对保存在成员的DSSDistances属性 中,其中键为DSS;
S7.5,尝试读取DSSDistances属性中的一对“键-值”,如果存在尚未被读取的键值对,则执行S7.61,否则执行S7.62;
S7.61,通过查看值,比较键所对应的DSS与最大DSS间的距离,如果距离不大于探索半径,则计算键所对应的DSS与最大DSS边界点间的距离,并找到其中最小的距离,否则返回S7.5;
S7.62,从成员中删除最大DSS,及成员的DSSForMerging属性中对应最大DSS的键值对所包含的DSS,然后返回S7.1;
S7.7,如果最小距离没有超过探索半径的2倍,则检查键所对应的DSS是否已被成员DSSForMerging属性中的键值对所包含;否则返回S7.5;
S7.8,如果已包含,则返回S7.5;否则根据成员DSSForMerging属性中对应最大DSS的键值对所包含DSS的所有接纳点,计算厚度;
S7.9,如果厚度不大于探索半径的2倍,则将键所对应的DSS添加进成员DSSForMerging属性中对应最大DSS的键值对中并返回S7.5;否则返回S7.5。
进一步,所述步骤8的具体过程为:
S8.1,尝试在DSSGroup集合中读取一个S8.1尚未读取过的成员,如果存在一个尚未读取过的成员,则尝试读取成员DSSForMerging属性中一个尚未读取过的键值对,否则结束步骤8;
S8.2,如果存在一个尚未读取过的键值对,则将所读取键值对中包含的所有DSS添加给键所对应的DSS,并将DSS集合中对应的原DSS删除;否则返回S8.1中的尝试读取成员DSSForMerging属性中一个尚未读取过的键值对;
S8.3,标识“发生融合”为真并返回S8.1;
S8.4,若“发生融合”为真,则返回S7.1,否则结束步骤8。
本发明方法的有益效果为:
通过附图验证表明,附图说明图15展示了一个理想椭圆,根据和Θ的不同人工输入参数值,使用本发明方法识别DSS的视觉结果。通过观察图15所示结果,可以发现通过人工调节和Θ,本发明方法对于理想图形边缘可以实现不同精度的分割,精度是指由参数和Θ确定的,本发明方法分割非直线边缘产生的DSS数量。
附图说明图16展示了使用本发明方法处理6副现实数字图像经由Canny边缘检测产生的边缘图像的视觉结果。通过观察图16所示结果,可以发现本发明方法对于低分辨率的现实世界图像(real-world image)具有良好的处理能力。例如Cameraman中人物背部边缘的完整分割以及Pepper中柿子椒曲线边缘的分割等。
附图说明图17展示了由Canny边缘检测产生的边缘图像的视觉结果,以及本发明方法的处理结果。其中House图像底部的边缘检测结果包含大量的干扰信息,本发明方法仍然识别了图像中最主要的几条DSS。Puzzle图像顶部的边缘检测结果显示了中断的图形边缘,本发明方法的识别结果则是连续的DSS。这两个例子所示的情况实际上在图16中大量发生,而图16所示结果说明,本发明方法具有较好的抗噪声与连接中断边缘的特点。
通过实验验证,附图中展示了使用本发明方法处理6副图像不同分辨率版本的边缘图像耗时情况。6副边缘图像的分辨率以像素为单位,从128×128开始,以32×32为步长增加分辨率,直至1280×1280结束。观察附图可以判断处理图像Lena的运算时间,较其他图像而言较大,而Puzzle的处理时间较小。这主要是由于Lena边缘图像的图像空间中存在大量相互临近由前景像素构成的边缘,而Puzzle中的边缘间的距离在图像空间中相对较大。这说明本发明方法更适合处理图像空间中边缘间距大于的边缘图像。
通过实验可以发现图像Lena和Puzzle分别反映了总耗时较大和较小的情况,同时可以发现图像Lena的耗时增长主要由橙色区域,即步骤6引起,而图像Puzzle能在高分辨率下维持低耗时,也是由于步骤6的耗时未大幅增加。
附图说明
图1为本发明的方法所涉及的一些基本概念的模型图;
图2为本发明方法的前景像素收集过程图;
图3为用于说明本发明方法中分割与融合DSS的过程图;
图4为以UML活动图的形式描述了本发明方法的流程图;
图5为以UML类图的形式描述了用于实施本发明方法所涉及的高级语言(High-level programming language)中的类;
图6为以UML活动图的形式描述了用于本发明方法步骤1至步骤8的实施细节流程图;
图7为以UML活动图的形式描述了用于本发明方法步骤1的实施细节流程图;
图8为以UML活动图的形式描述了用于本发明方法步骤2的实施细节流程图;
图9为以UML活动图的形式描述了用于本发明方法步骤3的实施细节流程图;
图10为以UML活动图的形式描述了用于本发明方法步骤4的实施细节流程图;
图11为以UML活动图的形式描述了用于本发明方法步骤5的实施细节流程图;
图12为以UML活动图的形式描述了用于本发明方法步骤6的实施细节流程图;
图13为以UML活动图的形式描述了用于本发明方法步骤7的实施细节流程图;
图14为以UML活动图的形式描述了用于本发明方法步骤8的实施细节流程图;
图15为用于说明本发明方法对椭圆边缘的分割效果图;
图16为用于说明本发明方法对任意边缘的分割效果图;
图17为用于说明本发明方法对特定边缘的分割效果图;
图18为用于说明本发明方法处理各种分辨率图像的用时情况示意图;
图19为用于说明本发明方法处理各种分辨率图像的各步骤用时情况,对于每个柱子,从下至上不同颜色的区域依次标识了步骤1至步骤8的用时情况示意图;
图20为用于说明本发明方法处理图像Lena各分辨率版本的各步骤用时情况示意图;
图21为用于说明本发明方法处理图像Tower各分辨率版本的各步骤用时情况示意图;
图22为用于说明本发明方法处理图像Puzzle各分辨率版本的各步骤用时情况示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
本发明提出的算法计算部分原理由附图说明的图1至图3描述。本发明使用计算机程序语言完成实施。具体实施过程涉及的算法静态概念和动态活动分别由符合UML(统一建模语言)标准的类图与活动图描述,见附图说明中的图4至图14。为使陈述清楚明了,现集中定义本发明所涉及的部分符号和概念。
Z+表示正整数集合。
Z表示包括零的整数集合。
R+表示包括零的正实数集合。
R表示包括零的实数集合。
{·}表示集合。
|{·}|表示集合{·}中元素的数量。
条件”或“max元素条件”表示通过选择元素使条件最大化。
条件”或“min元素条件”表示通过选择元素使条件最小化。
条件”或“arg max元素条件”表示使条件最大化的元素。
条件”或“arg min元素条件”表示使条件最小化的元素。
sgn(·)表示提取符号值,例如sgn(10)=sgn(1.1)=1,sgn(-10)=sgn(-1.1)=-1,sgn(0)=1。
对于c1∈R+
表示边缘图像的宽。
表示边缘图像的高。
图像空间,记做I:保存边缘图像的图像数据。每一个记录单元唯一对应一个像素。图像数据中,按照对应图像信息的,先从左向右,后从上至下的顺序排列像素,即,I是具有行,列的矩阵,矩阵中的每个元素值即为像素值。
矩阵坐标系:I中的每个元素的二维索引为(x′,y′)其中表示列索引, 表示行索引,(x′,y′)表示了一个坐标系中点的位置,该坐标系以矩阵左上角为原点,最上边一行为指向x′增加方向的X轴正半轴,最左边一列为指向y′增加方向的Y轴正半轴,该坐标系称为矩阵坐标系。例如:附图说明图1至图3的每个正方形都表示I的一个前景像素,每个像素在矩阵坐标系中具有1单位的长度,每个正方形中心的点表示矩阵坐标系中的点(x′,y′)。
图像空间坐标系:原点为矩阵坐标系的点X轴正半轴由原点指向矩阵坐标系的点的直角坐标系。像素在图像空间坐标系中的坐标称为图像空间坐标。
平均中心坐标系:对于个像素组成的根据其像素的图像空间坐标(xi′,yi′),i′∈Z+计算的平均坐标为原点的直角坐标系,其中称为的平均中心。该坐标系X轴正半轴和I中具有方向起点为原点的单位向量重合。每个都能唯一确定一个平均中心坐标系,中像素在该坐标系中的坐标值称为平均中心坐标。的定义见下文。
其中z3∈Z+表示I中索引为z3的像素像素的值非索引z3决定,而是根据在I中所对应的矩阵元素所确定。
IF表示边缘图像的前景像素集合。
表示由指向的向量,其中1≤k1,k2≤|IF|,k1≠k2
表示间的欧几里得距离(Euclidean distance)。
表示原点在方向与矩阵坐标系的X轴正半轴重合的射线。
表示通过逆时针旋转直至重合为止所经过的角度值,且例如:附图说明中图1所示的通过逆时针旋转原点在P1的X轴正半轴与重合,所经过的角度由θ表示,则
表示通过顺时针旋转直至重合为止所经过的角度值,且
的方向定义为例如:附图说明中图1中,θ=的方向。对于的方向的方向也写作类似地,也写作
探索半径,一个给定的正整数值,其单位是像素且
泛化连通性:对于任意和给定常数为圆心,为半径的圆,其覆盖的所有像素是连通的,即表示了与连通的所有像素的集合。例如:对于附图说明中图1所示P1而言,P2与P1是连通的。
例如附图说明图1中的方向θ2的方向θ3的方向差异θΔ3<0是顺时针旋转 得到的,因为Rc2,θ3)<Rac2,θ3);的方向θ2的方向θ4的方向差异θΔ4>0是逆时针旋转得到的,因为Rc2,θ4)>Rac2,θ4).。
方向差异阀值,Θ:一个给定的代表角度的正实数,其单位是度且0°≤Θ<90°。
然后选取中的任意一个像素,记做P2,并以P2为圆心, 为半径在图像空间中展开一个半圆,半圆的唯一直径与垂直,此时集合 表示圆内除P2外的所有前景像素。若|S2|≠0,对于固定值σ∈R,0°≤θ<360°,则定义函数f:和区间其中f将区间映射为中的的数量。函数f-1则将给定的整数映射为或取相同f值的有序方向集合中的中值。DSS的方向则为是连通性检查过程中,由前后像素形成的各种向量方向中,出现次数最多的向量方向。点所在的二维空间称为方向统计,记做即:对于(的定义见下文),以和f为两个维度的空间。
概括地,令表示第次以当前DSS接纳点为中心,为半径的圆或半圆内前景像素与的检查泛化连通性,则与具有泛化连通性的像素集合定义如下。
其中表示第(t-1)次泛化连通性检查后,DSS的方向。的定义详见下文的式(5)。如果表示在第次泛化连通性检查后,DSS所包含的像素集合,表示在I中的几何厚度或宽度,α∈R为给定的常数,由产生的接纳点集合定义如下。
产生的未拒绝点集合的定义类似除了将定义中的 替换为令P1∈IF表示任意给定的像素,则作为第次泛化连通性检查的圆心的定义如下。
则随机选择中的一个像素作为 表示DSS中所有接纳点的方向集合,则DSS方向或统计度量直线特征定义如下。
i∈Z+则基于统计度量直线特征的,对于由次连续泛化连通性检查产生的DSS,记做其定义如下。
分别表示的接纳点和未拒绝点。若则说明第次泛化连通性检查没有产生接纳点,此时当前DSS的识别结束,即
根据以上泛化连通性检查过程,下面介绍一个简单的例子。假设Θ=15°,R=1.5像素,α=2,σ=0,对于附图说明图2所示的所有像素表示了一条数字边缘,其分割过程如下所述。
时,假设附图说明图2中最初给定的像素为P1,则以P1为圆心的第1次泛化连通性检查发现了前景像素P2和Q(用于示意检查的圆形未在附图说明图2中绘制)。此时,存在两个方向:的方向θ2的方向θQ。由于θ2和θQ与DSS1的方向的方向差异相同,且假设该方向差异小于Θ。此时P2和Q均保存为DSS1的接纳点,从P2和Q中随机选择一个像素用于下一次泛化连通性检查,假设P2被选中。将3个接纳点P1,P2和Q从IF中删除。
时,以P2为圆心的第2次泛化连通性检查(用于示意检查的半圆未在附图说明图2中绘制)发现了前景像素P3,由于的方向θ3与θ2相同,根据式(5),因此θΔ3=0,且DSS1的厚度所以P3被DSS1接受并保存为接纳点,同时P3被选 为下一次泛化连通性检查的圆心。将接纳点P3从IF中删除。
时,以P3为圆心的第3次泛化连通性检查发现了P4。根据式(5),保持不变,因此θΔ4>Θ,且所以P4被DSS1接受并保存为未拒绝点,同时没有像素被选为下一次泛化连通性检查的圆心。
时,因为没有发生泛化连通性检查。此时DSS1的识别结束,最终DSS1={P1,P2,P3,Q}∪{P4}。因为P4未被删除,P4成为了识别DSS2的最初给定的像素。DSS2和DSS3的识别过程类似DSS1
对于在步停止泛化连通性检查(即)的其接纳点数量应远远大于未拒绝点的数量,同时其接纳点的方向统计应是单峰的,但事实上存在多种因素会造成未拒绝点数量超过接纳点,以及为多峰。其中可能的因素有最初的方向存在对后续方向误导,即的方向差异超过Θ,由于本发明方法没有假设任何已知条件,所以在最初泛化连通性检查得到的被假设为DSS的正确方向并用作后续的泛化连通性检查。
为确保具有合理的接纳点数量和未拒绝点的数量需要计算其比值并与用于衡量比例失调的常数进行比较,比例失调的具体定义如下。
根据(7),若比例失调,则交换中的像素。具有多峰在I中直观地表现出多处明显弯曲。的多峰性通过计算方向统计中最大与次大f值的比例,并与用于衡量多峰性的常数进行比较,多峰性的具体定义如下。
其中根据(8),若是多峰的,则依次集合中按照计算f值由大到小排列的相邻两个元素的方向差异如果则将保存在集合中,中的方向称为分割方向。将根据进行分割。根据式(4),对于集合存在对应的,作为圆心的像素若Pj表示中的某个圆心,为给定的常数,表示使方向差异最小化的方向通过衡量圆心处方向变化次数确定的分割位置,分割位置集合定义如下。
对于任意Pj,对于具有最小方向差异的与j之前个连续的,对于具有最小差异的中的方向进行比较。如果与之前个值不是同一个值,则Pj被标记为的分割位置。对于所有分割为其方向根据线性回归计算。假设其中表示中像素的图像空间坐标, 的平均中心,则的方向根据下式计算。
根据的厚度可以由所包含像素平均中心坐标中的最大和最小纵坐标差的绝对值来近似。这些具有最大横或纵平均中心坐标的像素称为边界点,边界点的集合记做为保证符合式(6)的定义,任何使成立的边界点都会从中删除。
假设附图说明图3中DSS1已知,DSS2和DSS3未知,DSS2和DSS3为分割DSS1后产生的DSS,则附图说明图3展示了分割一个给定的DSS,即DSS1的过程。假设Θ=15°,σ=0,且DSS1由附图说明图3中所示的7个像素组成,那么DSS1中包含2个点:根据式(8),呈多峰。因为假设DSS1的集合的泛化连通性检查的圆心依次附图说明图3中所示为P1,P2,...,P6,对于P2中与方向差异最小的是对于P3中与方向差异最小的是对于P4中与方向差异最小的是此时根据式(9),因为出现前,连续出现了次,满足了式(9)的条件,所以P4被标记为分割位置。
对于各DSS分割产生的新DSS,其中来自于不同原DSS的部分分割产生的DSS可能具有相似的方向和相近的位置,因此,在分割后本发明方法还会尝试融合。若表示IF中识别的所有DSS,即:DSS1那么这些DSS可分类为如下的集合
其中k1k1≠k2,1≤k1表示的方向,i=1,2;表示在中具有最多接纳点DSS的平均中心坐标系中,平均中心的横坐标值。被进一步分类为如下的集合。
假设附图说明图3中DSS2和DSS3已知,DSS1未知,DSS1为融合DSS2和DSS3的结果,则附图说明图3展示了DSS2和DSS3的融合过程。假设Θ=45°,α=1.6,像素。因为根据式(11), 此时DSSMax=DSS2。DSS2的平均中心在附图说明图3中以标有的黑点标识,DSS3的平均中心是附图说明图3中标识有P5的像素。DSS2和DSS3的边界点纵坐标差的绝对值的最大值,即标识在附图说明图3中。因为成立,根据(12)DSS2和DSS3发生融合,其结果为DSS1。DSS1的方向则根据式(10)计算。
本发明计算方法的具体实施方式通过使用高级程序语言,例如C#,编写计算机程序完成。实施过程依赖3个自定义的类,分别是DSSGroup类,DSS类和DSSPoint类。这3个类的关系及成员由附图说明图5中的UML类图描述。本发明方法的概念性流程分别由附图说明图4,图6至图14所示的UML活动图描述,其中图4展示了本发明方式实施的概况。如图4所示,本发明方法包括2个主要步骤:“步骤1:找到DSS”和“步骤2:融合DSS”。除探索半径与方向差异阀值Θ依赖人工输入,本发明方法涉及的其它参数均设定为常数,具体有:式(3)中的α设为2,式(7)中的设为1.5,式(8)中的设为0.7,式(9)中的设为4,对于近似。为便于实施,式(4)及式(5)中,对应的分支条件被替换为
DSSPoint类保存了泛化连通性检查所发现前景像素相对于图像空间左上角像素的指针偏移量,检查圆心相对于图像空间左上角像素的指针偏移量,由圆心指向该前景像素的向量的方向,以及该像素的图像空间坐标和平均中心坐标。DSS类保存了式(6)定义的像素。边界点保存在DSS类中具有DSSPoint类型的属性中。DSSGroup类对应式(11)定义的DSSGroup类的属性DSSForMerging对应了式(12)定义的其他属性则用于式(11)的计算。DSSGroup类还包括一个具有两个参数DSS1和DSS2的构造函数。
基于附图说明图5所示的类,附图说明图6的UML活动图描述了本发明方法的步骤及相互关系。如图6所示,步骤1至步骤5包括5个子步骤:“步骤1:找到至少两个相邻的点”,“步骤2:持续搜索直至未发现与当前DSS相邻的点”,“步骤3:评估当前DSS的接纳点和未拒绝点”,“步骤4:生成方向直方图并根据直方图多峰性分割当前DSS”,“步骤5:评估当前DSS宽度并根据宽度进行缩减”;步骤6至步骤8包括3个子步骤:“步骤6:根据DSS方向,将DSS集合中的DSS分组”,“步骤7:根据DSS间的距离,将每组中的DSS细分为小组”,“步骤8:尝试融合每个小组内的DSS”。步骤1和2实现了由式(1)至式(6)描述的通过检查泛化连通性和计算统计度量直线特征识别DSS的过程。步骤3至5实现了由式(7)至式(10)描述的DSS分割过程。步骤6至步骤8实现了由式(11)和式(12)描述的DSS融合过程。
如附图说明图6所示,本发明方法逐行依次扫描给定边缘图像的所有像素,一旦发现尚未读取过的前景像素,就会触发步骤1。图7所示的UML活动图描述了步骤1的流程:
S1.1,初始化一个新的DSS对象,称为当前DSS,并使用所读取的第一个前景像素初始化新的DSSPoint对象,将该DSSPoint对象保存为DSS对象的接纳点;
S1.2,在以该前景像素为圆心且半径为探索半径的圆形范围内,收集前景像素;
S1.3,如果收集到至少1个非圆心的前景像素,则将每个收集到的前景像素都初始化为DSSPoint对象,计算每个DSSPoint对象相对于圆心的方向并将在DSSPoint对象中保存计算结果;否则,结束步骤1;
S1.4,计算收集到的前景像素的平均方向,并找出与平均方向差异最小的DSSPoint对象;
S1.5,将S1.4找到的DSSPoint对象保存为当前DSS对象的接纳点,并根据平均方向对剩余的DSSPoint对象进行分类;
S1.6,在图像空间中删除归属当前DSS对象的DSSPoint对象所对应的前景像素;更新当前DSS的平均中心和边界点。
步骤1在图像空间中所读取前景像素的坐标,根据中点圆算法(Midpoint circlealgorithm)计算一个圆心为所读取前景像素,半径为的圆内像素的图像空间坐标,根据所计算坐标确定圆内像素相对于图像空间左上角像素的指针偏移量,并根据该偏移量逐一读取圆内的每个像素。此时,圆心对应式(4)中的P1,圆内前景像素组成了式(2)的S1,这些前景像素相对于圆心的方向由从圆心出发指向这些前景像素的向量的方向确定,这些方向的平均值是式(5)的然后根据式(3),对S1中的前景像素进行分类,形成方向差异最小的像素被选为下次泛化连通性检查的圆心,即式(4)定义的P2
步骤1结束时,如果当前DSS包含至少两个前景像素,则步骤2开始,否则删除找到的一个前景像素,继续扫描边缘图像。附图说明图8展示了步骤2的流程:
S2.1,以最后保存的像素为圆心,半径为探索半径的半圆范围内收集前景像素,半圆唯一的直径与当前DSS方向垂直,且半圆位于从圆心出发,依当前DSS方向指向的位置;
S2.2,尝试读取S2.1所收集的,除圆心以外的一个尚未读取过的前景像素;
S2.3,如果未成功读取一个前景像素,执行S2.7,否则根据所读取的前景像素初始化一个新DSSPoint对象并假设该DSSPoint对象被接纳,计算假设条件下的DSS厚度,如果厚度超过探索半径2倍,则返回S2.2,否则执行S2.4;
S2.4,计算当前DSS方向与该DSSPoint对象方向的差异;
S2.5,如果所得差异超过方向差异阀值,则执行S2.51,否则执行S2.52;
S2.51,将该DSSPoint对象保存为当前DSS的未拒绝点,更新归属当前DSS的每个点相对于平均中心的坐标,以及当前DSS的边界点;
S2.52,将该DSSPoint对象保存为当前DSS的接纳点,更新当前DSS方向并在图像空间中永久删除该DSSPoint对象对应的像素;
S2.6,根据接纳点和未拒绝点的图像空间坐标,更新当前DSS平均中心坐标,然后返回S2.2;
S2.7,在图像空间中删除步骤1与步骤2访问过的前景像素。
步骤2以之前计算的为圆心,根据式(2)在直径与垂直的半圆内寻找前景像素,所找到的前景像素组成式(2)的根据之前计算的根据式(5)更新DSS方向。中前景像素相对于圆心的方向由圆心出发指向这些前景像素的向量的方向确定,根据这些方向, 和式(3),中的像素分类为其中与方向差异最小的像素被选为下次泛化连通性检查的圆心,即式(4)定义的这个过程反复重复,直至结束。
步骤2结束后,步骤3开始。附图说明图9展示了步骤3的流程:比较DSS中接纳点与未拒绝点的数量,如果未拒绝点的数量是接纳点数量1.5倍,则将接纳点标识为未拒绝点,并将未拒绝点标识为接纳点。
步骤3通过计算式(7),判断当前DSS是否存在比例失调,如果存在,则交换中的像素,否则开始步骤4。
步骤4根据式(8)检查当前DSS的是否呈多峰,并且计算分割位置如果呈多峰。附图说明中图10展示了步骤4的流程:
S4.1,比较接纳点的数量和探索半径整数部分的值,如果数量超过值,则生成方向统计,其索引为DSS中每个点的方向的整数部分,值是方向整数部分与索引值相同的点的数量;否则执行S4.11;
S4.2,按方向统计中值的大小降序排列索引;
S4.3,尝试找到方向统计的最大值和次大值,如果方向统计中包含至少2对索引与值,则执行S4.41;否则执行S4.42;
S4.41,比较最大值和次大值,如果次大值达到0.7倍的最大值,则将最大值与次大值对应的索引,记录为分割方向,并在方向统计中删除最大值及其索引,否则返回S4.3;
S4.42,检查分割方向数量,如果至少存在2个分割方向,则按步骤2记录的像素顺序,依次读取当前DSS中尚未被S4.42读取过的接纳点,否则执行S4.8;
S4.5,如果所读取接纳点非当前DSS的最后一个接纳点,则将所读取点的方向与所有分割方向进行比较;否则执行S4.8;
S4.6,如果与所读取点的方向差异最小的分割方向与兼容分割方向不同,则记录新分割方向的出现次数,否则返回S4.42以读取下一个接纳点;
S4.7,如果出现次数大于3次,则将所读取点标记为分割位置并将新分割方向标记为兼容分割方向;否则返回S4.42以读取下一个接纳点;
S4.8,删除第一个分割位置,根据剩余的分割位置,将步骤2中保存接纳点的前后顺序划分为多个区间,对于每个区间所保存的接纳点,初始化一个新的DSS并将接纳点重新保存为该DSS的接纳点;
S4.9,生成S4.8产生的多个DSS的平均中心,并根据线性回归计算每个DSS的方向;
S4.10,对于当前DSS的每个未拒绝点,计算其与S4.8所生成DSS的平均中心之间的距离,将其分配给距离最近的DSS,初始化一个新的DSS集合,并将分割产生的DSS保存在该集合中,结束步骤4;
S4.11,在图像空间中恢复S2.7所删除的,原DSS的未拒绝点,结束步骤4。
步骤4计算中f的最大值与次大值之比,所计算的比例与参数比较,当比例超过时,则将f最大值与次大值所对应的保存在式(8)定义的集合中并将其从中删除,这样的比例计算一直重复,直至中没有两点f值的比例超过为止。集合中的元素按其对应的f值,按从大到小的顺序排列。若则说明呈多峰,依次比较中相邻的两个元素,若其方向差异大于Θ,则将两个元素保存在集合中。当根据和式(9),步骤4尝试找到分割位置。实际实施过程中,步骤4按DSS中点的保存顺序,计算每个点方向与中方向的差异,并将对应最小方向差异的中的方向与之前具有最小方向差异的 中的方向,即图10中的兼容分割方向进行比较,如果两者不同,则记录该中的方向的连续出现次数,当次数为时,将对应的DSS中的点保存为分割位置并标记中的方向为兼容分割方向。分割位置计算完成后,步骤4尝试根据分割位置,按DSS中点的保存顺序,将DSS分割为多个DSS。分割产生的DSS根据式(10),计算其方向。
步骤5计算DSS的厚度,即式(3)中的DSS厚度的通过计算DSS各点的平均中心坐标,找出边界点,用边界点的纵坐标之差的最大值来近似。如果厚度大于则删除对应最大纵坐标之差的两个边界点,重复上述过程,即找边界点,近似厚度并比较等,直至厚度不大于为止。附图说明图11描述了步骤5流程:
S5.1,尝试从步骤4产生的DSS集合中读取一个尚未读取过的DSS;
S5.2,如果存在一个尚未读取过的DSS,则对于所读取DSS中的每个点,计算其在原点为DSS平均中心且X轴正半轴指向DSS方向的坐标系中的坐标;否则结束步骤5;
S5.3,根据所计算坐标值找到所读取DSS的边界点,根据边界点计算DSS厚度,将厚度与探索半径比较;
S5.4,如果厚度超过探索半径的2倍,则将探索半径2倍外的点从DSS中删除;否则返回S5.1;
S5.5,如果图像空间中具有最大二维索引的像素尚未被步骤1读取,则返回步骤1,否则开始步骤6。
步骤6根据式(11)对DSS进行分类。步骤6仅根据式(11)中方向差异不大于Θ的条件进行分类,附图说明图12展示了其流程:
S6.1,尝试从DSS集合中读取一个本步骤尚未读取的DSS,如果存在一个尚未被本步骤读取过的DSS,则标记所读取DSS为外DSS,否则结束步骤6;
S6.2,尝试从DSS集合中读取一个本步骤尚未读取的DSS,如果不包括外DSS,存在一个尚未被本步骤读取过的DSS,则标记所读取DSS为内DSS,并计算内DSS与外DSS方向的差异;否则 返回S6.1;
S6.3,如果差异不大于方向差异阀值,则遍历DSSGroup集合的成员,如果内DSS尚未被任何成员包含,则找到与内DSS方向差异最小的成员;否则返回S6.2;
S6.4,如果存在一个方向差异最小的成员,则计算内DSS与该成员的方向差异,否则返回S6.2;
S6.5,如果S6.4所计算的差异不大于方向差异阀值,则将内DSS添加进该成员,并更新该成员的方向,返回S6.2;否则,将内DSS添加进键为外DSS的成员,或初始化这样一个成员如果无法找到该成员,返回S6.2。
步骤6遍历DSS集合中每个DSS,若DSS未被读取且未被DSSGroup集合中其它DSSGroup对象包含,则评估所读取DSS与所有DSSGroup对象平均方向的方向差异,其中方向差异最小且不大于Θ的DSSGroup存在,则将所读取DSS标记为该DSSGroup成员,若不存在,则为所读取DSS创建新的DSSGroup成员。式(11)中的距离检查由步骤7完成。
步骤7是融合DSS的关键步骤,其流程见附图说明图13:
S7.1,尝试在DSSGroup集合中读取一个尚未读取过的成员,如果存在一个尚未读取过的成员,则检查所读取的成员;否则结束步骤7;
S7.2,如果该成员非空,则找到成员中具有最多接纳点的DSS,并标记该DSS为最大DSS;否则返回S7.1;
S7.3,对于成员中的每个DSS,计算其相对于“原点为最大DSS平均中心且X正半轴指向最大DSS方向的坐标系”的平均中心坐标值;
S7.4,将每个DSS和其平均中心X坐标值作为“键-值”成对保存在成员的DSSDistances属性中,其中键为DSS;
S7.5,尝试读取DSSDistances属性中的一对“键-值”,如果存在尚未被读取的键值对,则执行S7.61,否则执行S7.62;
S7.61,通过查看值,比较键所对应的DSS与最大DSS间的距离,如果距离不大于探索半径,则计算键所对应的DSS与最大DSS边界点间的距离,并找到其中最小的距离,否则返回S7.5;
S7.62,从成员中删除最大DSS,及成员的DSSForMerging属性中对应最大DSS的键值对所包含的DSS,然后返回S7.1;
S7.7,如果最小距离没有超过探索半径的2倍,则检查键所对应的DSS是否已被成员DSSForMerging属性中的键值对所包含;否则返回S7.5;
S7.8,如果已包含,则返回S7.5;否则根据成员DSSForMerging属性中对应最大DSS的键 值对所包含DSS的所有接纳点,计算厚度;
S7.9,如果厚度不大于探索半径的2倍,则将键所对应的DSS添加进成员DSSForMerging属性中对应最大DSS的键值对中并返回S7.5;否则返回S7.5。
该步骤找到DSSGroup集合中每个DSSGroup对象所包含的具有最大接纳点数量的DSS,即式(12)中的DSSMax,然后计算DSSGroup所包含DSS在DSSMax平均中心坐标系下,平均中心的坐标值。DSS间的距离由所计算的平均中心坐标值的横坐标之差近似,根据DSS距离的近似值判断步骤6中未判断的式(11)条件,即在DSSMax平均中心坐标系下,判断DSS平均中心横坐标绝对值是否大于将不大于的DSS保存在以DSSMax为键的DSS集合中,即式(11)的保存在DSSGroup的DSSForMerging属性里。对中的每个DSS,计算其边界点与DSSMax边界点的距离,该距离由DSSMax平均中心坐标系中边界点横坐标之差的最大绝对值近似,将绝对值大于的DSS从中删除,此时修改后的即为式(12)的这个过程一直重复,直至每个DSSGroup对象处理完毕。
步骤8将DSSForMerging属性保存的键值对以作为的键的DSS为基础,将值中保存的DSS的接纳点和未拒绝点分别保存到作为键的DSS中,值中的所有DSS从参数DSS集合中删除。附图说明图14展示了步骤8的流程:
S8.1,尝试在DSSGroup集合中读取一个S8.1尚未读取过的成员,如果存在一个尚未读取过的成员,则尝试读取成员DSSForMerging属性中一个尚未读取过的键值对,否则结束步骤8;
S8.2,如果存在一个尚未读取过的键值对,则将所读取键值对中包含的所有DSS添加给键所对应的DSS,并将DSS集合中对应的原DSS删除;否则返回S8.1中的尝试读取成员DSSForMerging属性中一个尚未读取过的键值对;
S8.3,标识“发生融合”为真并返回S8.1;
S8.4,若“发生融合”为真,则返回S7.1,否则结束步骤8。
附图说明中图15至图16展示了使用本发明方法处理人造数字图像和现实数字图像经由Canny边缘检测产生的边缘图像的视觉结果;附图说明中图17至图21展示了本发明方法的多种运算耗时情况。对于附图说明中图15至图21展示的结果,除探索半径与方向差异阀值Θ依赖人工输入,本发明方法涉及的其它参数均设定为常数,具体有:式(3)中的α设为2,式(7)中的设为1.5,式(8)中的设为0.7,式(9)中的设为4,对于近似。
附图说明图15展示了一个理想椭圆,根据和Θ的不同人工输入参数值,使用本发明方 法识别DSS的视觉结果,图15中每幅图下都用字母R,D以及其后的数字表示人工输入的参数和Θ的值。例如:R5D5表示该图是运算和Θ=5的本发明方法得到的。图15中的上下两排图像,分别展示了固定和Θ中一方的值,变化另一方值产生的识别结果。相对于Θ值,本发明方法对于值的变化较为敏感,例如图15中,上排图像的变化,在视觉感受上没有下排的大,这个结果也可以从图15中间一列的图像观察得出。
附图说明图16展示了使用本发明方法处理6副现实数字图像经由Canny边缘检测产生的边缘图像的视觉结果。这6副图像分别以Cameraman,House,Lena,Pepper,Puzzle和Tower命名。由于这6副图像基本是数字图像处理领域常用的测试图像,其原始图像以及Canny边缘检测的边缘图像可以在互联网或数字图像处理教科书配套数字资源里下载,故没有在附图说明中展示。附图说明图16中的6副图像分别率均为256×256,其处理结果分别使用原始图像名称标注。对于6副图像,均为3,Θ均为15°。由于分辨率较小,较大的容易产生错误识别结果,但较小容易引起长边缘的过度分割,例如:图像House的底部和图像Puzzle的顶部。
过度分割的问题可以用增加图像分辨率解决。附图说明图17展示了当图像分辨率提高到1280×1280并使用较大值时,例如:5或7,所产生的识别结果。在图16中House底部的多个平行DSS在图17中被识别为一个DSS。此外,观察图17中Puzzle的边缘图像,可以发现图17中Puzzle的识别结果具有较好的抗噪声与连接中断边缘的特点。
附图说明图18展示了使用本发明方法处理图16所示6副图像不同分辨率版本的边缘图像耗时情况。6副边缘图像的分辨率以像素为单位,从128×128开始,以32×32为步长增加分辨率,直至1280×1280结束。由于分辨率的两维相同,图18的横轴仅标注了其中一维,例如:128×128标注为128。图18的纵轴是以Tick的log值为单位的本发明方法运算时间,1Tick表示100纳秒(nanosecond)。观察图18可以判断处理图像Lena的运算时间,较其他图像而言,较大,而Puzzle的处理时间较小。这主要是由于Lena边缘图像的图像空间中存在大量相互临近由前景像素构成的边缘,而Puzzle中的边缘间的距离在图像空间中相对较大。这说明本发明方法更适合处理图像空间中边缘间距大于的边缘图像。
附图说明图19展示了本发明方法处理图16所示6副分辨率为128×128,640×640和1280×1280的边缘图像时,各步骤的运算时间。图19纵轴单位和图18相同,横轴则标注了6副图像的名称,对于每幅图像,运算时间按分辨率从小到大的方式排列,例如:图19横轴标注的Cameraman,该名称上方有3个立柱,图19中按从左向右的顺序,3个立柱分别对应分辨率为128×128,640×640和1280×1280的边缘图像处理耗时。图19中的每个立 柱高度代表本发明方法处理相应图像的总耗时,立柱中从下向上不同颜色的区域顺序表示步骤1.1至步骤2.3的耗时,区域越长,则耗时越多。通过观察图19,可以发现图像Lena和Puzzle分别反映了总耗时较大和较小的情况,同时可以发现图像Lena的耗时增长主要由橙色区域,即步骤2.1引起,而图像Puzzle能在高分辨率下维持低耗时,也是由于步骤2.1的耗时未大幅增加。
附图说明中图20至图22依次展示了使用本发明方法处理图像Lena,Tower和Puzzle不同分辨率版本的边缘图像的耗时情况。图20至图22的横轴单位,纵轴单位均与图18相同。类似图19的观察结果,观察图20至22,特别是代表步骤2.1耗时情况的最上方折线,容易发现步骤2.1是引起总耗时增加的主要原因。图像Lena的耗时在图18中横轴高维区域的增长,与图20中步骤2.1的耗时在同一区域的增长对应,而图像Puzzle的耗时在图18中高维区域的缓慢增长,与图22中步骤2.1的耗时在同一区域的缓慢增长对应。
尽管已经示出和描述了本发明的实施例,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同物限定。

Claims (7)

1.一种基于统计度量直线特征的数字直线段识别方法,其特征在于,包括以下步骤:
步骤1:在数字图像空间中,由上至下逐行扫描,在一行中按从左到右的顺序,尝试读取一个与已读取像素紧邻的新像素,一旦发现尚未读取过的前景像素,则需找到至少两个相邻的点;
所述步骤1的具体过程为:
S1.1,初始化一个新的DSS对象,称为当前DSS,并使用所读取的第一个前景像素初始化新的DSSPoint对象,将该DSSPoint对象保存为DSS对象的接纳点;
S1.2,在以该前景像素为圆心且半径为探索半径的圆形范围内,收集前景像素;
S1.3,如果收集到至少1个非圆心的前景像素,则将每个收集到的前景像素都初始化为DSSPoint对象,计算每个DSSPoint对象相对于圆心的方向并将在DSSPoint对象中保存计算结果;否则,结束步骤1;
S1.4,计算收集到的前景像素的平均方向,并找出与平均方向差异最小的DSSPoint对象;
S1.5,将S1.4找到的DSSPoint对象保存为当前DSS对象的接纳点,并根据平均方向对剩余的DSSPoint对象进行分类;
S1.6,在图像空间中删除归属当前DSS对象的DSSPoint对象所对应的前景像素;更新当前DSS的平均中心和边界点;
步骤2:如果当前DSS包含至少两个前景像素,则持续搜索直至未发现与当前DSS相邻的点,否则删除找到的一个前景像素,继续扫描边缘图像;
所述步骤2的具体过程为:
S2.1,以最后保存的像素为圆心,半径为探索半径的半圆范围内收集前景像素,半圆唯一的直径与当前DSS方向垂直,且半圆位于从圆心出发,依当前DSS方向指向的位置;
S2.2,尝试读取S2.1所收集的,除圆心以外的一个尚未读取过的前景像素;
S2.3,如果未成功读取一个前景像素,执行S2.7,否则根据所读取的前景像素初始化一个新DSSPoint对象并假设该DSSPoint对象被接纳,计算假设条件下的DSS厚度,如果厚度超过探索半径2倍,则返回S2.2,否则执行S2.4;
S2.4,计算当前DSS方向与该DSSPoint对象方向的差异;
S2.5,如果所得差异超过方向差异阈值,则执行S2.51,否则执行S2.52;
S2.51,将该DSSPoint对象保存为当前DSS的未拒绝点,更新归属当前DSS的每个点相对于平均中心的坐标,以及当前DSS的边界点;
S2.52,将该DSSPoint对象保存为当前DSS的接纳点,更新当前DSS方向并在图像空间中永久删除该DSSPoint对象对应的像素;
S2.6,根据接纳点和未拒绝点的图像空间坐标,更新当前DSS平均中心坐标,然后返回S2.2;
S2.7,在图像空间中删除步骤1与步骤2访问过的前景像素;
步骤3:评估当前DSS的接纳点和未拒绝点,
步骤4:生成方向直方图并根据直方图多峰性分割当前DSS,
步骤5:评估当前DSS宽度并根据宽度进行缩减;
步骤6:根据DSS方向,将DSS集合中的DSS分组;
步骤7:根据DSS间的距离,将每组中的DSS细分为小组;
步骤8:尝试融合每个小组内的DSS。
2.根据权利要求1所述的基于统计度量直线特征的数字直线段识别方法,其特征在于,所述步骤3中,比较当前DSS中接纳点与未拒绝点的数量,如果未拒绝点的数量是接纳点数量1.5倍,则将接纳点标识为未拒绝点,并将未拒绝点标识为接纳点。
3.根据权利要求1所述的基于统计度量直线特征的数字直线段识别方法,其特征在于,所述步骤4的具体过程为:
S4.1,比较接纳点的数量和探索半径整数部分的值,如果数量超过值,则生成方向统计,其索引为DSS中每个点的方向的整数部分,值是方向整数部分与索引值相同的点的数量;否则执行S4.11;
S4.2,按方向统计中值的大小降序排列索引;
S4.3,尝试找到方向统计的最大值和次大值,如果方向统计中包含至少2对索引与值,则执行S4.41;否则执行S4.42;
S4.41,比较最大值和次大值,如果次大值达到0.7倍的最大值,则将最大值与次大值对应的索引,记录为分割方向,并在方向统计中删除最大值及其索引,否则返回S4.3;
S4.42,检查分割方向数量,如果至少存在2个分割方向,则按步骤2记录的像素顺序,依次读取当前DSS中尚未被S4.42读取过的接纳点,否则执行S4.8;
S4.5,如果所读取接纳点非当前DSS的最后一个接纳点,则将所读取点的方向与所有分割方向进行比较;否则执行S4.8;
S4.6,如果与所读取点的方向差异最小的分割方向与兼容分割方向不同,则记录新分割方向的出现次数,否则返回S4.42以读取下一个接纳点;
S4.7,如果出现次数大于3次,则将所读取点标记为分割位置并将新分割方向标记为兼容分割方向;否则返回S4.42以读取下一个接纳点;
S4.8,删除第一个分割位置,根据剩余的分割位置,将步骤2中保存接纳点的前后顺序划分为多个区间,对于每个区间所保存的接纳点,初始化一个新的DSS并将接纳点重新保存为该DSS的接纳点;
S4.9,生成S4.8产生的多个DSS的平均中心,并根据线性回归计算每个DSS的方向;
S4.10,对于当前DSS的每个未拒绝点,计算其与S4.8所生成DSS的平均中心之间的距离,将其分配给距离最近的DSS,初始化一个新的DSS集合,并将分割产生的DSS保存在该集合中,结束步骤4;
S4.11,在图像空间中恢复S2.7所删除的,原DSS的未拒绝点,结束步骤4。
4.根据权利要求1所述的基于统计度量直线特征的数字直线段识别方法,其特征在于,所述步骤5的具体过程为:
S5.1,尝试从步骤4产生的DSS集合中读取一个尚未读取过的DSS;
S5.2,如果存在一个尚未读取过的DSS,则对于所读取DSS中的每个点,计算其在原点为DSS平均中心且X轴正半轴指向DSS方向的坐标系中的坐标;否则结束步骤5;
S5.3,根据所计算坐标值找到所读取DSS的边界点,根据边界点计算DSS厚度,将厚度与探索半径比较;
S5.4,如果厚度超过探索半径的2倍,则将探索半径2倍外的点从DSS中删除;否则返回S5.1;
S5.5,如果图像空间中具有最大二维索引的像素尚未被步骤1读取,则返回步骤1,否则开始步骤6。
5.根据权利要求1所述的基于统计度量直线特征的数字直线段识别方法,其特征在于,所述步骤6的具体过程为:
S6.1,尝试从DSS集合中读取一个本步骤尚未读取的DSS,如果存在一个尚未被本步骤读取过的DSS,则标记所读取DSS为外DSS,否则结束步骤6;
S6.2,尝试从DSS集合中读取一个本步骤尚未读取的DSS,如果不包括外DSS,存在一个尚未被本步骤读取过的DSS,则标记所读取DSS为内DSS,并计算内DSS与外DSS方向的差异;否则返回S6.1;
S6.3,如果差异不大于方向差异阈值,则遍历DSSGroup集合的成员,如果内DSS尚未被任何成员包含,则找到与内DSS方向差异最小的成员;否则返回S6.2;
S6.4,如果存在一个方向差异最小的成员,则计算内DSS与该成员的方向差异,否则返回S6.2:
S6.5,如果S6.4所计算的差异不大于方向差异阀值,则将内DSS添加进该成员,并更新该成员的方向,返回S6.2;否则,将内DSS添加进键为外DSS的成员,或初始化这样一个成员如果无法找到该成员,返回S6.2。
6.根据权利要求5所述的基于统计度量直线特征的数字直线段识别方法,其特征在于,所述步骤7的具体过程为:
S7.1,尝试在DSSGroup集合中读取一个尚未读取过的成员,如果存在一个尚未读取过的成员,则检查所读取的成员;否则结束步骤7;
S7.2,如果该成员非空,则找到成员中具有最多接纳点的DSS,并标记该DSS为最大DSS;否则返回S7.1;
S7.3,对于成员中的每个DSS,计算其相对于“原点为最大DSS平均中心且X正半轴指向最大DSS方向的坐标系”的平均中心坐标值;
S7.4,将每个DSS和其平均中心X坐标值作为“键-值”成对保存在成员的DSSDistances属性中,其中键为DSS;
S7.5,尝试读取DSSDistances属性中的一对“键-值”,如果存在尚未被读取的键值对,则执行S7.61,否则执行S7.62;
S7.61,通过查看值,比较键所对应的DSS与最大DSS间的距离,如果距离不大于探索半径,则计算键所对应的DSS与最大DSS边界点间的距离,并找到其中最小的距离,否则返回S7.5;
S7.62,从成员中删除最大DSS,及成员的DSSForMerging属性中对应最大DSS的键值对所包含的DSS,然后返回S7.1;
S7.7,如果最小距离没有超过探索半径的2倍,则检查键所对应的DSS是否已被成员DSSForMerging属性中的键值对所包含;否则返回S7.5;
S7.8,如果已包含,则返回S7.5;否则根据成员DSSForMerging属性中对应最大DSS的键值对所包含DSS的所有接纳点,计算厚度;
S7.9,如果厚度不大于探索半径的2倍,则将键所对应的DSS添加进成员DSSForMerging属性中对应最大DSS的键值对中并返回S7.5;否则返回S7.5。
7.根据权利要求6所述的基于统计度量直线特征的数字直线段识别方法,其特征在于,所述步骤8的具体过程为:
S8.1,尝试在DSSGroup集合中读取一个S8.1尚未读取过的成员,如果存在一个尚未读取过的成员,则尝试读取成员DSSForMerging属性中一个尚未读取过的键值对,否则结束步骤8;
S8.2,如果存在一个尚未读取过的键值对,则将所读取键值对中包含的所有DSS添加给键所对应的DSS,并将DSS集合中对应的原DSS删除;否则返回S8.1中的尝试读取成员DSSForMerging属性中一个尚未读取过的键值对;
S8.3,标识“发生融合”为真并返回S8.1;
S8.4,若“发生融合”为真,则返回S7.1,否则结束步骤8;若“发生融合”为假,则返回S6.1。
CN201510812214.3A 2015-11-20 2015-11-20 一种基于统计度量直线特征的数字直线段识别方法 Active CN105513044B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510812214.3A CN105513044B (zh) 2015-11-20 2015-11-20 一种基于统计度量直线特征的数字直线段识别方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510812214.3A CN105513044B (zh) 2015-11-20 2015-11-20 一种基于统计度量直线特征的数字直线段识别方法

Publications (2)

Publication Number Publication Date
CN105513044A CN105513044A (zh) 2016-04-20
CN105513044B true CN105513044B (zh) 2018-07-17

Family

ID=55721001

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510812214.3A Active CN105513044B (zh) 2015-11-20 2015-11-20 一种基于统计度量直线特征的数字直线段识别方法

Country Status (1)

Country Link
CN (1) CN105513044B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112802045B (zh) * 2021-02-24 2022-05-13 燕山大学 一种同步检测图像中平行直线和平行曲线特征的方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4901365A (en) * 1988-12-19 1990-02-13 Ncr Corporation Method of searching binary images to find search regions in which straight lines may be found
CN101315698A (zh) * 2008-06-25 2008-12-03 中国人民解放军国防科学技术大学 基于直线特征图像配准中的特征匹配方法
CN102819743A (zh) * 2012-08-14 2012-12-12 常州大学 一种快速识别数字图像中直线段的检测方法
CN104751177A (zh) * 2015-03-26 2015-07-01 常州大学 一种用于标识数字图像中给定模糊数字直线段的方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060011828A (ko) * 2003-04-03 2006-02-03 더블린 시티 유니버시티 멀티미디어 데이터를 인덱싱 및 검색하기 위한 형상 매칭방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4901365A (en) * 1988-12-19 1990-02-13 Ncr Corporation Method of searching binary images to find search regions in which straight lines may be found
CN101315698A (zh) * 2008-06-25 2008-12-03 中国人民解放军国防科学技术大学 基于直线特征图像配准中的特征匹配方法
CN102819743A (zh) * 2012-08-14 2012-12-12 常州大学 一种快速识别数字图像中直线段的检测方法
CN104751177A (zh) * 2015-03-26 2015-07-01 常州大学 一种用于标识数字图像中给定模糊数字直线段的方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
一种采用HOG特征的直线段提取方法;王学娟 等;《红外与激光工程》;20130225;第42卷(第2期);第513-519页 *
低信噪比红外图像直线段检测算法;艾锐 等;《红外与激光工程》;20130125;第42卷(第1期);第278-284页 *
基于边缘连接的快速直线段检测算法;董晶 等;《光学学报》;20130310;第33卷(第3期);第1-8页 *

Also Published As

Publication number Publication date
CN105513044A (zh) 2016-04-20

Similar Documents

Publication Publication Date Title
Tian et al. Optimization in multi‐scale segmentation of high‐resolution satellite images for artificial feature recognition
WO2018107939A1 (zh) 一种基于边缘完备度的图像分割最优识别方法
US7421125B1 (en) Image analysis, editing and search techniques
CN107292234B (zh) 一种基于信息边缘和多模态特征的室内场景布局估计方法
CN109427066A (zh) 任意角度的边缘检测方法
CN105719306B (zh) 一种高分辨率遥感影像中的建筑物快速提取方法
CN104794479B (zh) 基于局部笔画宽度变换的自然场景图片中文本检测方法
CN104063711B (zh) 一种基于K‑means方法的走廊消失点快速检测算法
CN107230203A (zh) 基于人眼视觉注意机制的铸件缺陷识别方法
CN110321769A (zh) 一种多尺寸货架商品检测方法
CN105513066B (zh) 一种基于种子点选取与超像素融合的通用物体检测方法
Galvanin et al. Extraction of building roof contours from LiDAR data using a Markov-random-field-based approach
CN112766184B (zh) 基于多层级特征选择卷积神经网络的遥感目标检测方法
CN102446356A (zh) 一种获取均匀分布匹配点的遥感影像并行自适应匹配方法
CN111915628A (zh) 一种基于预测目标密集边界点的单阶段实例分割方法
Yang et al. Robust line detection using two-orthogonal direction image scanning
Oka et al. Vectorization of contour lines from scanned topographic maps
Gong et al. Point cloud segmentation of 3D scattered parts sampled by RealSense
CN105513044B (zh) 一种基于统计度量直线特征的数字直线段识别方法
CN108109125A (zh) 基于遥感图像的信息提取方法和装置
Omidalizarandi et al. Segmentation and classification of point clouds from dense aerial image matching
CN108256425B (zh) 一种利用遥感光谱信息高效率提取港口集装箱的方法
JP6546385B2 (ja) 画像処理装置及びその制御方法、プログラム
CN106780577A (zh) 一种基于组特征的直线匹配方法
CN102073868A (zh) 基于数字图象闭合轮廓链的图象区域识别方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20230419

Address after: Room 101, Block A, Tianrun Science and Technology Building, Changzhou Science and Education City, No. 18-3 Changwu Middle Road, Wujin District, Changzhou City, Jiangsu Province, 213000

Patentee after: Changzhou Changda Science and Technology Park Management Co.,Ltd.

Address before: Gehu Lake Road Wujin District 213164 Jiangsu city of Changzhou province No. 1

Patentee before: CHANGZHOU University