基于图像轮廓的角点提取方法及装置转让专利

申请号 : CN201510673750.X

文献号 : CN105405117B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 赵敏姚毅金刚

申请人 : 凌云光技术集团有限责任公司

摘要 :

本发明公开的基于图像轮廓的角点提取方法,包括:当提取图像轮廓之后,使用“k‑余弦曲率”法从图像轮廓的轮廓点中提取显著角点,其中,所述显著角点为曲率大于预设曲率的点;使用拟合算法生成每两个所述显著角点之间轮廓点对应的轮廓曲线描述数据;当所述轮廓曲线描述数据与标准数据的差值大于预设阈值时,按照预设规则从所述轮廓点中提取弱角点,其中,所述弱角点为曲率小于预设曲率的点。本发明还公开了一种基于图像轮廓的角点提取装置。与现有技术相比,本方案能够将图像轮廓中的角点更加全面精确的提取出,保证得到的轮廓段更加准确,进而能够提高PCB基板的检测精度。

权利要求 :

1.一种基于图像轮廓的角点提取方法,其特征在于,包括:当提取图像轮廓之后,使用“k-余弦曲率”法从图像轮廓的轮廓点中提取显著角点,其中,所述显著角点为曲率大于预设曲率的点;

使用拟合算法生成每两个所述显著角点之间轮廓点对应的轮廓曲线描述数据;

当所述轮廓曲线描述数据与标准数据的差值大于预设阈值时,按照预设规则从所述轮廓点中提取弱角点,其中,所述弱角点为曲率小于预设曲率的点;

所述按照预设规则从所述轮廓点中提取弱角点,包括:调用第一子预设规则;

按照所述第一子预设规则从所述轮廓点中提取所述弱角点;

所述按照所述第一子预设规则从所述轮廓点中提取所述弱角点,包括:从所述轮廓点对应的曲率曲线中获取曲率峰值;

计算所述曲率峰值两侧曲率值为零的连续区段的长度值;

当所述曲率峰值两侧曲率值为零的连续区段的长度值大于或者等于第一预设值时,将所述曲率峰值对应的轮廓点确定为弱角点。

2.根据权利要求1所述的方法,其特征在于,所述按照预设规则从所述轮廓点中提取弱角点,还包括:当按照所述第一子预设规则从所述轮廓点中未提取到所述弱角点时,调用第二子预设规则;

按照所述第二子预设规则从所述轮廓点中提取所述弱角点。

3.根据权利要求2所述的方法,其特征在于,按照所述第二子预设规则从所述轮廓点中提取所述弱角点,包括:从所述轮廓点对应的曲率曲线中获取梯形曲率曲线;

计算所述梯形曲率曲线中曲率峰值的长度值;

当所述梯形曲率曲线中曲率峰值的长度值大于或者等于第二预设值时,确定所述梯形曲率曲线中曲率值上升区段和曲率值下降区段对应的轮廓点范围;

分别对所述轮廓点范围内的轮廓点进行拟合运算得到描述数据;

将所述描述数据与标准数据的差值最小的轮廓点确定为弱角点。

4.根据权利要求3所述的方法,其特征在于,在计算所述梯形曲率曲线中曲率峰值的长度值之后,在确定所述梯形曲率曲线中曲率值上升区段和曲率值下降区段对应的轮廓点范围之前,还包括:利用拟合算法计算所述轮廓点对应的轮廓曲线的半径;

判断所述半径是否小于预设支撑宽度,其中,所述预设支撑宽度为计算轮廓点曲率时,待计算轮廓点与所选取轮廓点的跨度值;

如果所述半径小于所述预设支撑宽度,执行所述确定所述梯形曲率曲线中曲率值上升区段和曲率值下降区段对应的轮廓点范围的步骤;

如果所述半径大于或者等于预设支撑宽度,按预设步长设置N个检测支撑宽度值,并按照第一检测支撑宽度值计算所述轮廓点的曲率值,其中,N为自然数,检测支撑宽度值从1到N逐渐增大;

当曲率值连续相等的轮廓点的数量大于第三预设值时,将所述曲率值连续相等的轮廓点确定为待检测轮廓点;

顺次按照第二检测支撑宽度值到第N检测支撑宽度值重复计算所述待检测轮廓点的曲率值;

当按照第I检测支撑宽度值所得到的曲率值并不连续相等时,将第I-1检测支撑宽度值对应的曲率曲线的起、止轮廓点确定为弱角点,其中,N≥I>1。

5.根据权利要求3或4所述的方法,其特征在于,还包括:通过拟合算法确定每两个弱角点之间轮廓段类型;

当相邻的两轮廓段的类型相同时,删除两轮廓段之间的弱角点。

6.一种基于图像轮廓的角点提取装置,其特征在于,包括:提取模块,用于当提取图像轮廓之后,使用“k-余弦曲率”法从图像轮廓的轮廓点中提取显著角点,其中,所述显著角点为曲率大于预设曲率的点;

生成模块,用于使用拟合算法生成所述提取模块所提取的每两个显著角点之间轮廓点对应的轮廓曲线描述数据;

所述提取模块,还用于当所述生成模块所生成的轮廓曲线描述数据与标准数据的差值大于预设阈值时,按照预设规则从所述轮廓点中提取弱角点,其中,所述弱角点为曲率小于预设曲率的点;

所述提取模块包括调用单元和提取单元,其中,所述调用单元,用于调用第一子预设规则;

所述提取单元,用于按照所述第一子预设规则从所述轮廓点中提取所述弱角点;

所述提取单元包括获取子单元、计算子单元和确定子单元,其中,所述获取子单元,用于从所述轮廓点对应的曲率曲线中获取曲率峰值;

所述计算子单元,用于计算所述曲率峰值两侧曲率值为零的连续区段的长度值;

所述确定子单元,用于当所述曲率峰值两侧曲率值为零的连续区段的长度值大于或者等于第一预设值时,将所述曲率峰值对应的轮廓点确定为弱角点。

7.根据权利要求6所述的装置,其特征在于,所述提取模块包括调用单元和提取单元,其中,所述调用单元,还用于当按照所述第一子预设规则从所述轮廓点中未提取到所述弱角点时,调用第二子预设规则;

所述提取单元,还用于按照所述第二子预设规则从所述轮廓点中提取所述弱角点。

8.根据权利要求6所述的装置,其特征在于,所述提取单元还包括:拟合运算子单元,其中,所述获取子单元,还用于从所述轮廓点对应的曲率曲线中获取梯形曲率曲线;

所述计算子单元,还用于计算所述梯形曲率曲线中曲率峰值的长度值;

所述确定子单元,还用于当所述梯形曲率曲线中曲率峰值的长度值大于或者等于第二预设值时,确定所述梯形曲率曲线中曲率值上升区段和曲率值下降区段对应的轮廓点范围;

所述拟合运算子单元,用于分别对所述轮廓点范围内的轮廓点进行拟合运算得到描述数据;

所述确定子单元,还用于将所述描述数据与标准数据的差值最小的轮廓点确定为弱角点。

说明书 :

基于图像轮廓的角点提取方法及装置

技术领域

[0001] 本发明涉及图像检测技术领域,具体涉及一种基于图像轮廓的角点提取方法及装置。

背景技术

[0002] PCB(Printed Circuit Board,印制线路板)作为组装电子零件的基板,在制作过程中,通过孔加工、化学镀铜、电镀铜、蚀刻等加工过程,得到所需的电路图形。设置在PCB基板的电路图形形成电连接区域,在电连接区域的预设位置设置有电路元器件的焊孔,在将相应电路元器件焊接在PCB基板上之后,得到可用的电路板。
[0003] 由于PCB基板中电连接区域的形状、尺寸和位置直接影响PCB基板的性能和可靠性,因此,在PCB基板制作完成后,通常对电连接区域的直导线、圆焊盘、方焊盘、电地区等元素类型进行检测。具体的,可以将PCB基板的轮廓映射到图像检测软件得到图像轮廓,其中,图像轮廓由轮廓点组成,然后从轮廓点中提取出不同轮廓段相交得到的角点,以所提取的角点作为端点将图像轮廓划分为轮廓段,通过检测轮廓段的尺寸和形状检测每种元素类型是否满足相应条件。
[0004] 相关技术中,通过计算每个轮廓点与其前后k个轮廓点所形成夹角的余弦值来提取角点,在相关技术中称为“k-余弦曲率”法。然而,图像轮廓中存在许多角度很小的角点,例如,直线与圆弧相切的切点,和直线与直线相交但拐角很小的交点形成的角点,使用“k-余弦曲率”法无法精确识别出,导致所得到的轮廓段不准确,而不同轮廓段的检测标准不同,对应满足的条件也不相同,因此,一旦得到的轮廓段不准确将影响轮廓段的检测,进而造成PCB基板的检测结果精度差。

发明内容

[0005] 鉴于相关技术中存在的技术问题,本发明实施例提供了一种基于图像轮廓的角点提取方法及装置,以解决由于无法精确提取部分角点造成的PCB基板检测结果精度差的问题。
[0006] 第一方面,本发明实施例提供了一种基于图像轮廓的角点提取方法,包括:当提取图像轮廓之后,使用“k-余弦曲率”法从图像轮廓的轮廓点中提取显著角点,其中,所述显著角点为曲率大于预设曲率的点;使用拟合算法生成每两个所述显著角点之间轮廓点对应的轮廓曲线描述数据;当所述轮廓曲线描述数据与标准数据的差值大于预设阈值时,按照预设规则从所述轮廓点中提取弱角点,其中,所述弱角点为曲率小于预设曲率的点。
[0007] 优选的,所述按照预设规则从所述轮廓点中提取弱角点,包括:调用第一子预设规则;按照所述第一子预设规则从所述轮廓点中提取所述弱角点;当按照所述第一子预设规则从所述轮廓点中未提取到所述弱角点时,调用第二子预设规则;按照所述第二子预设规则从所述轮廓点中提取所述弱角点。
[0008] 优选的,所述按照所述第一子预设规则从所述轮廓点中提取所述弱角点,包括:从所述轮廓点对应的曲率曲线中获取曲率峰值;计算所述曲率峰值两侧曲率值为零的连续区段的长度值;当所述曲率峰值两侧曲率值为零的连续区段的长度值大于或者等于第一预设值时,将所述曲率峰值对应的轮廓点确定为弱角点。
[0009] 优选的,按照所述第二子预设规则从所述轮廓点中提取所述弱角点,包括:从所述轮廓点对应的曲率曲线中获取梯形曲率曲线;计算所述梯形曲率曲线中曲率峰值的长度值;当所述梯形曲率曲线中曲率峰值的长度值大于或者等于第二预设值时,确定所述梯形曲率曲线中曲率值上升区段和曲率值下降区段对应的轮廓点范围;分别对所述轮廓点范围内的轮廓点进行拟合运算得到描述数据;将所述描述数据与标准数据的差值最小的轮廓点确定为弱角点。
[0010] 优选的,在计算所述梯形曲率曲线中曲率峰值的长度值之后,在确定所述梯形曲率曲线中曲率值上升区段和曲率值下降区段对应的轮廓点范围之前,还包括:利用拟合算法计算所述轮廓点对应的轮廓曲线的半径;判断所述半径是否小于预设支撑宽度,其中,所述预设支撑宽度为计算轮廓点曲率时,待计算轮廓点与所选取轮廓点的跨度值;如果所述半径小于所述预设支撑宽度,执行所述确定所述梯形曲率曲线中曲率值上升区段和曲率值下降区段对应的轮廓点范围的步骤;如果所述半径大于或者等于预设支撑宽度,按预设步长设置N个检测支撑宽度值,并按照第一检测支撑宽度值计算所述轮廓点的曲率值,其中,N为自然数,检测支撑宽度值从1到N逐渐增大;当曲率值连续相等的轮廓点的数量大于第三预设值时,将所述曲率值连续相等的轮廓点确定为待检测轮廓点;顺次按照第二检测支撑宽度值到第N检测支撑宽度值重复计算所述待检测轮廓点的曲率值;当按照第I检测支撑宽度值所得到的曲率值并不连续相等时,将第I-1检测支撑宽度值对应的曲率曲线的起、止轮廓点确定为弱角点,其中,N≥I>1。
[0011] 优选的,还包括:通过拟合算法确定每两个弱角点之间轮廓段类型;当相邻的两轮廓段的类型相同时,删除两轮廓段之间的弱角点。
[0012] 第二方面,本发明实施例提供了一种基于图像轮廓的角点提取装置,包括:提取模块,用于当提取图像轮廓之后,使用“k-余弦曲率”法从图像轮廓的轮廓点中提取显著角点,其中,所述显著角点为曲率大于预设曲率的点;生成模块,用于使用拟合算法生成所述提取模块所提取的每两个显著角点之间轮廓点对应的轮廓曲线描述数据;所述提取模块,还用于当所述生成模块所生成的轮廓曲线描述数据与标准数据的差值大于预设阈值时,按照预设规则从所述轮廓点中提取弱角点,其中,所述弱角点为曲率小于预设曲率的点。
[0013] 优选的,所述提取模块包括调用单元和提取单元,其中,所述调用单元,用于调用第一子预设规则;所述提取单元,用于按照所述第一子预设规则从所述轮廓点中提取所述弱角点;所述调用单元,还用于当按照所述第一子预设规则从所述轮廓点中未提取到所述弱角点时,调用第二子预设规则;所述提取单元,还用于按照所述第二子预设规则从所述轮廓点中提取所述弱角点。
[0014] 优选的,所述提取单元包括获取子单元、计算子单元和确定子单元,其中,所述获取子单元,用于从所述轮廓点对应的曲率曲线中获取曲率峰值;所述计算子单元,用于计算所述曲率峰值两侧曲率值为零的连续区段的长度值;所述确定子单元,用于当所述曲率峰值两侧曲率值为零的连续区段的长度值大于或者等于第一预设值时,将所述曲率峰值对应的轮廓点确定为弱角点。
[0015] 优选的,所述提取单元还包括:拟合运算子单元,其中,所述获取子单元,还用于从所述轮廓点对应的曲率曲线中获取梯形曲率曲线;所述计算子单元,还用于计算所述梯形曲率曲线中曲率峰值的长度值;所述确定子单元,还用于当所述梯形曲率曲线中曲率峰值的长度值大于或者等于第二预设值时,确定所述梯形曲率曲线中曲率值上升区段和曲率值下降区段对应的轮廓点范围;所述拟合运算子单元,用于分别对所述轮廓点范围内的轮廓点进行拟合运算得到描述数据;所述确定子单元,还用于将所述描述数据与标准数据的差值最小的轮廓点确定为弱角点。
[0016] 综合上述,为解决相关技术无法精确提取角点的问题,本发明实施例的技术方案在提取图像轮廓之后,首先使用“k-余弦曲率”法从图像轮廓的轮廓点中提取显著角点,其中,所述显著角点为曲率大于预设曲率的点;然后,使用拟合算法生成每两个所述显著角点之间轮廓点对应的轮廓曲线描述数据,当所述轮廓曲线描述数据与标准数据的差值大于预设阈值时,说明所述轮廓点中可能存在未识别出的角点,从而按照预设规则从所述轮廓点中提取弱角点,其中,所述弱角点为曲率小于预设曲率的点。很明显,本发明实施例的技术方案,对图像轮廓中的角点按照曲率大小分两个阶段提取,而且,两个提取阶段的提取条件分别对应不同条件的角点设定,使得两个提取阶段之间形成互补,从而能够将图像轮廓中的角点更加全面精确的提取出,保证得到的轮廓段更加准确,进而能够提高PCB基板的检测精度。

附图说明

[0017] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。通过附图所示,本发明的上述及其它目的、特征和优势将更加清晰。在全部附图中相同的附图标记指示相同的部分。并未刻意按实际尺寸等比例缩放绘制附图,重点在于示出本发明的主旨。
[0018] 图1是本发明实施例提供的基于图像轮廓的角点提取方法的方法流程图;
[0019] 图2是本发明实施例提供的基于图像轮廓的角点提取方法的第二种实施方式的方法流程图;
[0020] 图3是本发明提供的图像轮廓中部分曲线的示例图;
[0021] 图4是本发明提供的图像轮廓中所有轮廓点的曲率曲线示意图;
[0022] 图5是本发明实施例提供的图像轮廓示例图;
[0023] 图6是本发明实施例提供的第一类弱角点的曲率曲线示例图;
[0024] 图7是本发明实施例提供的第二类弱角点的曲率曲线示例图;
[0025] 图8是本发明实施例提供的基于图像轮廓的角点提取装置的结构示意图。

具体实施方式

[0026] 由相关技术可知,PCB基板映射得到的图像轮廓由轮廓段组成,轮廓段主要包括直线和圆弧两类,因此,角点可以包括直线与直线的交点、直线与圆弧的交点、圆弧与圆弧的交点、直线与圆弧的切点。由于采用相关技术无法精确的提取出所有角点,因此,本发明实施例根据角点的类型,通过两个阶段全面、精确的提取图像轮廓中的角点。
[0027] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0028] 请参见图1,图1是本发明实施例提供的基于图像轮廓的角点提取方法的方法流程图,所述方法包括下述步骤:
[0029] 步骤S101,当提取图像轮廓之后,使用“k-余弦曲率”法从图像轮廓的轮廓点中提取显著角点。
[0030] 其中,PCB基板在制作完成后,图像检测软件提取出PCB基板的图像轮廓。需要说明的是,图像检测软件在得到PCB基板图像之后,跟踪PCB基板图像的边缘点,得到一个连续的边缘点集合,该边缘点集合构成图像轮廓,而边缘点即为本发明实施例所述的轮廓点。由于提取图像轮廓的技术为本领域技术人员所熟知的技术,因此,本发明实施例此处不再赘述。
[0031] 在得到图像轮廓之后,首先使用“k-余弦曲率”法计算图像轮廓中每个轮廓点的曲率,具体的,下面结合图3对计算轮廓点曲率的过程进行介绍。
[0032] 图3示出了图像轮廓中的部分曲线,其中,轮廓点Pi为本实施例中待计算曲率的轮廓点,在计算轮廓点Pi的曲率之前,预先设置有支撑宽度K,该预设支撑宽度为计算曲率时,设定的待计算轮廓点与所选取轮廓点的跨度值,因此,确定轮廓点Pi之后,确定轮廓点Pi前、后各K个轮廓点Pi-K和轮廓点Pi+K,轮廓点Pi-K和轮廓点Pi的连线形成矢量 轮廓点Pi+K和轮廓点Pi的连线形成矢量 矢量 与矢量 形成夹角θi,轮廓点Pi的曲率即为该夹角θi的余弦值。
[0033] 需要说明的是,上述仅为本发明的一个优选示例,对于其他轮廓点曲率的计算,与上述描述相似,本发明实施例此处不再赘述。此外,在本发明实施例中,预设支撑宽度K可以是4-6像素,具体的,根据不同的图像轮廓进行不同设置,本发明实施例对此不做限制。
[0034] 本步骤中,在计算得到所有轮廓点的曲率后,得到如图4所示的曲率曲线示意图,由于曲率峰值大于一定值时,形成该曲率峰值对应的轮廓点的轮廓段产生的夹角角度相对较小,如图5所示的图像轮廓中角点5、角点6、角点7和角点8所示的角点,可以很明确的将该曲率峰值对应轮廓点确定为角点;然而,当曲率峰值小于该值时,形成该曲率峰值对应的轮廓点的轮廓段产生的夹角角度相对较大,如图5所示的图像轮廓中角点1、角点2、角点3和角点4所示的角点,无法很明确的判断出该曲率峰值对应的轮廓点是否为角点。因此,当得到曲率曲线之后,可以根据曲率曲线设定曲率阈值,将大于曲率阈值的曲率峰值对应的角点确定为显著角点,并继续检测小于曲率阈值的曲率曲线,以提取出曲率小于曲率阈值的弱角点。
[0035] 本步骤所述的技术方案,能够将图像轮廓中的角点初步分类,并将显著角点提取出,从而确定弱角点存在的范围,以便于更好的提取弱角点。
[0036] 步骤S102,使用拟合算法生成每两个所述显著角点之间轮廓点对应的轮廓曲线描述数据。
[0037] 其中,在提取出显著角点之后,通过拟合算法初步确定每两个显著角点之间轮廓曲线的线型。拟合算法是根据具体线型所建立的数学模型,在得到显著角点的位置信息之后,将两相邻显著角点之间的轮廓点位置信息代入拟合公式,得到轮廓曲线的描述数据,并计算拟合得到的描述数据与数学模型对应的标准值的差值,判断该差值是否大于预设阈值,如果差值不大于预设阈值,则将轮廓曲线确定为相应标准值对应的线型,如果差值大于预设阈值,则轮廓曲线的线型与相应标准值对应的线型不符合。
[0038] 需要说明的是,轮廓曲线的线型包括直线和曲线,而直线与曲线的拟合算法模型不同,所对应的标准值也不同,因此,确定两显著角点之间轮廓曲线的线型时,需要按次序使用两种拟合算法分别计算描述数据。当使用第一种拟合算法能够确定轮廓曲线的线型时,停止计算;当使用第一种拟合算法无法确定轮廓曲线的线型时,使用第二种拟合算法对计算轮廓曲线的描述数据,如果描述数据与第二种拟合算法的标准值的差值不大于预设阈值,轮廓曲线的线型为第二种拟合算法对应的线型,如果描述数据与第二种拟合算法的标准值的差值大于预设阈值,则认为该两显著角点之间轮廓点中存在弱角点,并从中提取弱角点。
[0039] 其中,上述过程中第一拟合算法可以为直线拟合算法,第二拟合算法为曲线拟合算法,或者,第一拟合算法为曲线拟合算法,第二拟合算法为直线拟合算法,本发明实施例对此不做限制。
[0040] 本步骤通过拟合算法计算得到轮廓曲线的描述数据,从而能够以描述数据为根据筛选出存在弱角点的轮廓段范围,进而为提取弱角点做出了充足的准备。
[0041] 步骤S103,当所述轮廓曲线描述数据与标准数据的差值大于预设阈值时,按照预设规则从所述轮廓点中提取弱角点。
[0042] 其中,根据上述描述可知,弱角点为角度较大的点,此类角点分为两类,包括:直线与直线形成的角度较大交点形成的角点,如图5中的角点3和角点4,以及直线与圆弧的切点形成的角点,如5中的角点1和角点2。
[0043] 由于两种类型的弱角点具有不同的特点,因此,本技术方案针对两种类型弱角点设置有两套提取规则,当确定弱角点存在的轮廓点范围之后,顺次采用两种提取规则对弱角点进行提取。具体的,首先调用第一子预设规则,并按照第一子预设规则从轮廓点中提取弱角点;如果使用第一子预设规则无法提取出弱角点,则调用第二子预设规则,并按照第一子预设规则从轮廓点中提取弱角点。
[0044] 其中,在本发明实施例中,第一子预设规则可以为提取直线与直线形成的弱角点的规则,第二子预设规则为提取直线与曲线形成的弱角点的规则,或者,第一子预设规则可以为提取直线与曲线形成的弱角点的规则,第二子预设规则为提取直线与直线形成的弱角点的规则,本发明实施例对此不做限制。
[0045] 本实施例所述的技术方案,对图像轮廓中的角点按照曲率大小分两个阶段提取,而且,两个提取阶段的提取条件分别对应不同条件的角点设定,使得两个提取阶段之间形成互补,从而能够将图像轮廓中的角点更加全面精确的提取出,保证得到的轮廓段更加准确,进而能够提高PCB基板的检测精度。
[0046] 上述实施例从整体上描述了本发明的技术方案,为了使本领域技术人员更加清楚、详细的了解本发明实施例的技术方案,下面结合弱角点的类型对弱角点的提取过程进行详细描述。
[0047] 需要说明的是,本实施例基于上述实施例的描述,是对上述实施例的补充,因此,本实施例中与上述实施例相同的部分,详见上述实施例的描述,本实施例不再赘述。
[0048] 参见图2,图2为本发明实施例提供的基于图像轮廓的角点提取方法的第二种实施方式的方法流程图,所述方法包括以下步骤:
[0049] 步骤S201,当提取图像轮廓之后,使用“k-余弦曲率”法从图像轮廓的轮廓点中提取显著角点。
[0050] 其中,参见图5,本步骤中,使用“k-余弦曲率”法提取出显著角点角点5、角点6、角点7和角点8。具体提取过程详见上述实施例的描述,本实施例此处不再赘述。
[0051] 步骤S202,使用拟合算法生成每两个所述显著角点之间轮廓点对应的轮廓曲线描述数据。
[0052] 其中,当提取出显著角点角点5、角点6、角点7和角点8之后,分别对每两个角点之间的轮廓线按照先直线拟合再曲线拟合的方式进行拟合运算,得到轮廓曲线的描述数据,通过描述数据和标准值差值确定出角点5和角点6之间,以及角点7和角点8之间的轮廓曲线为直线,角点5和角点8之间的轮廓曲线为曲线。由于角点6和角点7之间的轮廓曲线并非一条线,因此,使用直线拟合算法和曲线拟合算法得到的描述数据,均与相应标准值的差值较大,所以,将角点6和角点7之间的轮廓点确定为待提取弱角点的轮廓点。
[0053] 需要说明的是,在本步骤中,可以先使用直线拟合算法得到描述数据,再使用曲线拟合算法得到描述数据,也可以先使用曲线拟合算法得到描述数据,再使用直线拟合算法得到描述数据,具体的,按照预先设定的程序执行,本发明实施例对此不做限制。
[0054] 步骤S203,当所述轮廓曲线描述数据与标准数据的差值大于预设阈值时,调用第一子预设规则。
[0055] 其中,根据上述实施例的描述可知,弱角点包括两种类型,因此,本发明实施例提供有两套提取弱角点的规则。
[0056] 具体的,根据弱角点的类型,本实施例中第一子规则可以为提取直线与直线形成的弱角点的规则,第二子规则可以为提取直线与曲线形成的弱角点的规则。
[0057] 步骤S204,按照所述第一子预设规则从所述轮廓点中提取所述弱角点。
[0058] 其中,在直线与直线形成的弱角点中,如图5中的角点3和角点4,由于直线一般都比较长,因此,在小于曲率阈值的曲率峰值两端至少会存在一个较长的零曲率区段,如图6所示的第一类弱角点曲率曲线示例图,曲率峰值001所对应的轮廓点即为直线与直线形成的弱角点。因此,可以以曲率峰值和零曲率区段长度作为提取依据。
[0059] 具体的,从角点6与角点7之间的轮廓点对应的曲率曲线中获取曲率峰值,由于角点6与角点7的轮廓曲线较复杂,且图像检测软件在计算轮廓点曲率时存在干扰因素,因此,可以获取到至少两个曲率峰值,当获取曲率峰值之后,分别计算每个曲率峰值两侧曲率值为零的连续区段的长度值,当曲率峰值两侧曲率值为零的连续区段的长度值大于或者等于第一预设值时,将该曲率峰值对应轮廓点确定为弱角点,从而能够提取出角点6与角点7。
[0060] 需要指出的是,在本发明的优选实施例中,第一预设值可以为大于30像素的值,可以根据具体应用场景进行具体设置,本发明实施例对此不做限制
[0061] 步骤S205,当按照所述第一子预设规则从所述轮廓点中未提取到所述弱角点时,调用第二子预设规则。
[0062] 然而,如果轮廓点中不存在直线与直线形成的弱角点,弱角点的类型为直线与曲线的切点,如图5中的角点1和角点2,那么,通过步骤S204的过程将无法查找到符合条件的曲率峰值,此时可以调用提取切点的第二子预设规则进行弱角点的提取。
[0063] 步骤S206,按照所述第二子预设规则从所述轮廓点中提取所述弱角点。
[0064] 参见图7,图7为本发明实施例提供的第二类弱角点的曲率曲线示例图,通常,使用“k-余弦曲率”法得到的曲率曲线,当存在直线与曲线相切的轮廓点时,该轮廓点与其前后几个轮廓点的曲率曲线表现为梯形的上升沿或者下降沿,如图7中002和003所示。因此,在提取切点形成的弱角点时,可以基于该特性进行。
[0065] 具体的,从图5中角点6与角点7之间的轮廓点对应的曲率曲线中获取梯形曲率曲线,计算该梯形曲率曲线中曲率峰值的长度值,当该梯形曲率曲线中曲率峰值的长度值大于或者等于第二预设值时,可以确定该梯形曲率曲线对应的轮廓点中存在弱角点。
[0066] 由于直线与圆弧的切点对应的轮廓点很难通过梯形曲率曲线确定,但是切点位于梯形曲率曲线的上升沿和下降沿所确定的范围内,因此,在梯形曲率曲线中曲率峰值的长度值大于或者等于第二预设值时,确定所述梯形曲率曲线中曲率值上升区段和曲率值下降区段对应的轮廓点范围,然后,可以通过拟合运算从轮廓点范围中查找描述数据与标准值差值最小的轮廓点,并将该轮廓点确定为弱角点。
[0067] 需要指出的是,在本发明的优选实施例中,第二预设值可以为大于30像素的值,可以根据具体应用场景进行具体设置,本发明实施例对此不做限制。
[0068] 当然,上述为所选取的预设支撑宽度较理想的情况下的弱角点提取方法,由于预设支撑区宽度为固定值,当预设支撑区宽度相对圆弧半径较小时,计算得到的曲率值受干扰信息的影响较大,得到的梯形曲率曲线将出现若干断裂,影响弱角点的提取,因此,在上述描述的基础上,在计算该梯形曲率曲线中曲率峰值的长度值之后,在确定梯形曲率曲线中曲率值上升区段和曲率值下降区段对应的轮廓点范围之前,本发明还提供了另外一种提取方式。
[0069] 为了避免由于预设支撑宽度固定带来的影响,本实施例中,首先利用拟合算法计算待提取轮廓点对应的轮廓曲线的半径,并判断该半径是否小于预设支撑宽度,如果半径小于预设支撑宽度,那么,所得到的梯形曲率曲线相对较为理想,可以确定梯形曲率曲线中曲率值上升区段和曲率值下降区段对应的轮廓点范围,并从轮廓点范围中提取弱角点。
[0070] 如果半径大于或者等于预设支撑宽度,那么,所得到的梯形曲率曲线受干扰信息的影响较大,影响轮廓点范围的确定。此时,按预设步长设置N个检测支撑宽度值,其中,N为自然数,检测支撑宽度值从1到N逐渐增大,该N个检测支撑宽度值部分大于半径,部分小于半径。并设置第三预设值,第三预设值可以为第一检测支撑宽度值的2.5倍。按照第一检测支撑宽度值计算轮廓点的曲率值,由于第一检测支撑宽度值大于轮廓曲线半径,在计算轮廓曲线上的每个轮廓点的曲率时,按照第一检测支撑宽度值所选取的轮廓点均已经跨过弱角点,因此,得到的每个轮廓点的曲率值均相等,当曲率值连续相等的轮廓点的数量大于第三预设值时,弱角点包含在其中,因此,将曲率值连续相等的轮廓点确定为待检测轮廓点。然后,顺次按照第二检测支撑宽度值到第N检测支撑宽度值重复计算所述待检测轮廓点的曲率值,由于从第二检测支撑宽度值到第N检测支撑宽度值数量逐渐减小,且支撑宽度值由大于半径到小于半径,因此,当按照第I检测支撑宽度值所得到的曲率值并不连续相等时,将第I-1检测支撑宽度值对应的曲率曲线的起、止轮廓点确定为弱角点,其中,N≥I>1。
[0071] 本实施例所述的弱角点提取方法,对应不同类型的弱角点设置不同的提取规则,从而能够将图像轮廓的弱角点全面、准确的提取出,进而使得所确定的轮廓段更加准确,从而能够大大提高PCB基板检测结果的精度。
[0072] 此外,需要说明的是,当预设的支撑区宽度大于轮廓曲线半径,在提取曲线上存在的弱角点时,很容易出现并非弱角点的轮廓点被误提取,因此,在对应的线型为曲线的轮廓段时,提取弱角点完成之后,通过拟合算法确定每两个弱角点之间轮廓段类型,具体的,可以计算轮廓段的半径长度和圆心位置,如果两轮廓段的类型相同,则认为两轮廓段之间的弱角点为误提取的点,删除该弱角点,合并两轮廓段,从而对所提取的弱角点做进一步检验。
[0073] 综合上述,为解决相关技术无法精确提取角点的问题,本发明实施例的技术方案在提取图像轮廓之后,首先使用“k-余弦曲率”法从图像轮廓的轮廓点中提取显著角点,其中,所述显著角点为曲率大于预设曲率的点;然后,使用拟合算法生成每两个所述显著角点之间轮廓点对应的轮廓曲线描述数据,当所述轮廓曲线描述数据与标准数据的差值大于预设阈值时,说明所述轮廓点中可能存在未识别出的角点,从而按照预设规则从所述轮廓点中提取弱角点,其中,所述弱角点为曲率小于预设曲率的点。很明显,本发明实施例的技术方案,对图像轮廓中的角点按照曲率大小分两个阶段提取,而且,两个提取阶段的提取条件分别对应不同条件的角点设定,使得两个提取阶段之间形成互补,从而能够将图像轮廓中的角点更加全面精确的提取出,保证得到的轮廓段更加准确,进而能够提高PCB基板的检测精度。
[0074] 与上述实现方法相对应的,本发明实施例还提供了一种基于图像轮廓的角点提取装置,参见图8,图8为本发明实施例提供的基于图像轮廓的角点提取装置的结构示意图,所述装置包括:提取模块11和生成模块12,其中,提取模块11用于当提取图像轮廓之后,使用“k-余弦曲率”法从图像轮廓的轮廓点中提取显著角点,其中,所述显著角点为曲率大于预设曲率的点;生成模块12,用于使用拟合算法生成所述提取模块11所提取的每两个显著角点之间轮廓点对应的轮廓曲线描述数据;在本实施例中,提取模块11,还用于当所述生成模块12所生成的轮廓曲线描述数据与标准数据的差值大于预设阈值时,按照预设规则从所述轮廓点中提取弱角点,其中,所述弱角点为曲率小于预设曲率的点。
[0075] 在本实施例中,提取模块11包括调用单元和提取单元,其中,调用单元,用于调用第一子预设规则;提取单元,用于按照所述第一子预设规则从所述轮廓点中提取所述弱角点;在本实施例中,当按照所述第一子预设规则从所述轮廓点中未提取到所述弱角点时,调用单元,还用于调用第二子预设规则,相应的,提取单元,还用于按照所述第二子预设规则从所述轮廓点中提取所述弱角点。
[0076] 具体的,提取单元包括获取子单元、计算子单元和确定子单元,其中,获取子单元,用于从所述轮廓点对应的曲率曲线中获取曲率峰值;计算子单元,用于计算所述曲率峰值两侧曲率值为零的连续区段的长度值;确定子单元,用于当所述曲率峰值两侧曲率值为零的连续区段的长度值大于或者等于第一预设值时,将所述曲率峰值对应的轮廓点确定为弱角点。
[0077] 在上述实施例的基础上,提取单元还包括:拟合运算子单元,其中,在本实施例中,所述获取子单元,还用于从所述轮廓点对应的曲率曲线中获取梯形曲率曲线;所述计算子单元,还用于计算所述梯形曲率曲线中曲率峰值的长度值;所述确定子单元,还用于当所述梯形曲率曲线中曲率峰值的长度值大于或者等于第二预设值时,确定所述梯形曲率曲线中曲率值上升区段和曲率值下降区段对应的轮廓点范围;所述拟合运算子单元,用于分别对所述轮廓点范围内的轮廓点进行拟合运算得到描述数据;所述确定子单元,还用于将所述描述数据与标准数据的差值最小的轮廓点确定为弱角点。
[0078] 结合上述实施例,在另一个实施例中,所述提取单元,具体还用于利用拟合算法计算所述轮廓点对应的轮廓曲线的半径;判断所述半径是否小于预设支撑宽度,其中,所述预设支撑宽度为计算轮廓点曲率时,待计算轮廓点与所选取轮廓点的跨度值;如果所述半径小于所述预设支撑宽度,执行所述确定所述梯形曲率曲线中曲率值上升区段和曲率值下降区段对应的轮廓点范围的步骤;如果所述半径大于或者等于预设支撑宽度,按预设步长设置N个检测支撑宽度值,并按照第一检测支撑宽度值计算所述轮廓点的曲率值,其中,N为自然数,检测支撑宽度值从1到N逐渐增大;当曲率值连续相等的轮廓点的数量大于第三预设值时,将所述曲率值连续相等的轮廓点确定为待检测轮廓点;顺次按照第二检测支撑宽度值到第N检测支撑宽度值重复计算所述待检测轮廓点的曲率值;当按照第I检测支撑宽度值所得到的曲率值并不连续相等时,将第I-1检测支撑宽度值对应的曲率曲线的起、止轮廓点确定为弱角点,其中,N≥I>1。
[0079] 在另一个实施例中,所述提取单元还包括角点删除子单元,在本实施例中,所述拟合运算子单元,还用于通过拟合算法确定每两个弱角点之间轮廓段类型;所述角点删除子单元,还用于当相邻的两轮廓段的类型相同时,删除两轮廓段之间的弱角点。
[0080] 所述装置中各个模块和单元的功能和作用的实现过程详见上述方法中对应的实现过程,在此不再赘述。
[0081] 综合上述,为解决相关技术无法精确提取角点的问题,本发明实施例的技术方案在提取图像轮廓之后,首先使用“k-余弦曲率”法从图像轮廓的轮廓点中提取显著角点,其中,所述显著角点为曲率大于预设曲率的点;然后,使用拟合算法生成每两个所述显著角点之间轮廓点对应的轮廓曲线描述数据,当所述轮廓曲线描述数据与标准数据的差值大于预设阈值时,说明所述轮廓点中可能存在未识别出的角点,从而按照预设规则从所述轮廓点中提取弱角点,其中,所述弱角点为曲率小于预设曲率的点。很明显,本发明实施例的技术方案,对图像轮廓中的角点按照曲率大小分两个阶段提取,而且,两个提取阶段的提取条件分别对应不同条件的角点设定,使得两个提取阶段之间形成互补,从而能够将图像轮廓中的角点更加全面精确的提取出,保证得到的轮廓段更加准确,进而能够提高PCB基板的检测精度。
[0082] 以上所述仅是本发明的具体实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。