一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

判断断头线的方法、装置、电子设备及存储介质与流程

2021-11-05 18:58:00 来源:中国专利 TAG:


1.本发明属于pcb线路板技术领域,具体涉及一种判断断头线的方法、装置、电子设备及存储介质。


背景技术:

2.pcb(printed circuit board,印制线路板)是组装电子零件的基板,是电子产品的关键电气互连件。pcb在设计过程中,由于多次绘制修改线的行走路径,或者在设计中误操作导致的一端没有连接的线,在pcb层数据中显示为一截没有网络,或者没有连接,或者是悬空的线,这些线被称为断头线。
3.这些线是没有任何实际用途的,但是可能会造成信号干扰或者电磁干扰,从而导致pcb生产中的良品率降低以及其他隐患。目前的pcb断头线的检测方法主要是人工检查,但是人工检查费时费工而且会存在遗漏。


技术实现要素:

4.为了解决现有技术中存在的上述问题,本发明提供了一种判断断头线的方法、装置、电子设备及存储介质。本发明要解决的技术问题通过以下技术方案实现:
5.本发明提供了一种判断断头线的方法,包括:
6.获取pcb每一层的pcb版图设计数据;
7.根据所述pcb版图设计数据,得到pcb每一层对应的原始图像;
8.根据所述原始图像,得到若干独立轮廓裁剪图像;
9.对所述独立轮廓裁剪图像进行图像骨架提取,得到所述独立轮廓裁剪图像对应的骨架图像,根据所述骨架图像,得到线段的数据信息;
10.根据所述线段的数据信息判断所述线段是否为断头线。
11.在本发明的一个实施例中,根据所述原始图像,得到若干独立轮廓裁剪图像,包括:
12.在所述原始图像中查找图像轮廓,得到若干独立轮廓,将所述原始图像清空,依次将若干所述独立轮廓重新绘制在所述原始图像的对应位置处,其中,每绘制完成一个独立轮廓,按照该独立轮廓的外接矩形对其进行裁剪,得到一个所述独立轮廓裁剪图像。
13.在本发明的一个实施例中,对所述独立轮廓裁剪图像进行图像骨架提取,得到骨架图像,根据所述骨架图像,得到线段的数据信息,包括:
14.对所述独立轮廓裁剪图像进行zhangsuen算法细化处理,得到所述独立轮廓裁剪图像对应的骨架图像;
15.根据所述骨架图像,得到所述线段的端点、端点坐标数据以及该端点所在线段在所述原始图像中的长度和宽度。
16.在本发明的一个实施例中,根据所述骨架图像,得到所述线段的端点、端点坐标数据以及该端点所在线段在所述原始图像中的长度和宽度,包括:
17.根据所述骨架图像,计算得到目标像素点的八邻域像素和,若所述八邻域像素和为1,那么该目标像素点为线段的端点,并根据所述原始图像得到对应的端点坐标数据;
18.根据所述端点的八邻域像素值,得到该端点所在线段的方向趋势,根据所述线段的方向趋势,计算得到其在所述原始图像中的长度和宽度。
19.在本发明的一个实施例中,所述pcb版图设计数据包括:焊盘数据和铜箔图形数据;其中,所述焊盘数据包括:焊盘标识,焊盘尺寸、形状及焊盘坐标;所述铜箔图形数据包括:铜箔的尺寸、形状及铜箔的坐标。
20.在本发明的一个实施例中,根据所述线段的数据信息判断所述线段是否为断头线,包括:
21.根据pcb每一层的pcb版图设计数据中所有的焊盘数据,求取每个所述焊盘数据构成的形状的外接矩形,作为空间索引,根据所述空间索引构建pcb每一层对应的空间索引树;
22.对所述骨架图像中线段的端点求取外接矩形,并在所述空间索引树中查找是否存在与该线段端点的外接矩形接触的空间索引;
23.若不存在,则根据所述线段的长宽比例判断其是否为断头线;
24.若存在,则判断所述线段的端点与该空间索引对应的焊盘数据构成的形状是否接触,若接触,则该线段不是断头线,若不接触,则根据所述线段的长宽比例判断其是否为断头线。
25.在本发明的一个实施例中,判断所述线段的端点与所述焊盘数据构成的形状是否接触,包括:
26.所述焊盘数据构成的形状为多边形:
27.计算得到所述线段的端点与所述多边形之间的最短距离mindis,包括,
28.根据pnpoly算法判断所述线段的端点是否在所述多边形内,若所述端点在所述多边形内,则mindis=0;
29.若所述端点在所述多边形外,则依次计算得到所述端点到所述多边形的每条边的最短距离,取最小值作为mindis;
30.所述线段线宽的一半为r,若mindis≤r,则所述线段的端点与所述多边形接触,若mindis>r,则所述线段的端点与所述多边形不接触。
31.在本发明的一个实施例中,判断所述线段的端点与所述焊盘数据构成的形状是否接触,包括:
32.所述焊盘数据构成的形状为圆形:
33.计算得到所述端点与所述圆形的圆心之间的距离mindis;
34.所述线段线宽的一半为r,若mindis≤r r2,则所述线段的端点与所述圆形接触,若mindis>r r2,则所述线段的端点与所述圆形不接触,其中,r2为所述圆形的半径。
35.在本发明的一个实施例中,判断所述线段的端点与所述焊盘数据构成的形状是否接触,包括:
36.所述焊盘数据构成的形状为直线:
37.计算得到所述线段的端点与所述直线之间的最短距离mindis;
38.所述线段线宽的一半为r,若mindis≤r,则所述线段的端点与所述直线接触,若
mindis>r,则所述线段的端点与所述直线不接触。
39.在本发明的一个实施例中,判断所述线段的端点与所述焊盘数据构成的形状是否接触,包括:
40.所述焊盘数据构成的形状为矩形:
41.根据所述矩形的端点坐标,计算得到所述矩形的中心点坐标,并以所述矩形的中心点为原点建立坐标系;
42.计算得到所述矩形的中心点到该矩形一端点的向量h;
43.将所述线段的端点转移到所述坐标系的第一象限,并计算得到所述矩形的中心点到所述线段的端点的向量v;
44.根据向量h和向量v,计算得到向量d=v

h,将向量d的负数分量设置为0,得到向量d的矢量大小为mindis;
45.所述线段线宽的一半为r,若mindis≤r,则所述线段的端点与所述矩形接触,若mindis>r,则所述线段的端点与所述矩形不接触。
46.本发明提供了一种判断断头线的装置,包括:
47.获取模块,用于获取pcb每一层的pcb版图设计数据;
48.图像模块,用于根据所述pcb版图设计数据,得到pcb每一层对应的原始图像;
49.轮廓处理模块,用于根据所述原始图像,得到若干独立轮廓裁剪图像;
50.骨架处理模块,用于对所述独立轮廓裁剪图像进行图像骨架提取,得到所述独立轮廓裁剪图像对应的骨架图像,根据所述骨架图像,得到线段的数据信息;
51.判断模块,用于根据所述线段的数据信息判断所述线段是否为断头线。
52.本发明提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
53.存储器,用于存储计算机程序;
54.处理器,用于执行所述计算机程序时,实现上述任一实施例所述的方法步骤。
55.本发明提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一实施例所述的方法步骤。
56.与现有技术相比,本发明的有益效果在于:
57.本发明判断断头线的方法根据pcb每一层的pcb版图设计数据得到pcb每一层对应的原始图像,根据原始图像获取其对应的骨架图像,通过骨架图像得到线段的数据信息,并根据线段的数据信息判断其是否为断头线,本方法可以有效检测断头线,防止信号干扰和电磁干扰等,从而提高了产品的性能,其次,通过自动识别断头线,减少了人工参与,避免人工参与出现的漏查隐患,也缩短了项目周期。
58.上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其他目的、特征和优点能够更明显易懂,以下特举较佳实施例,并配合附图,详细说明如下。
附图说明
59.图1是本发明实施例提供的一种断头场景示例图;
60.图2是本发明实施例提供的一种判断断头线的方法的流程图;
61.图3是本发明实施例提供的一种原始图像示意图;
62.图4是本发明实施例提供的一种轮廓裁剪前后的示意图;
63.图5是本发明实施例提供的一种部分轮廓的骨架图像示意图;
64.图6是图5中骨架端点的示意图;
65.图7是本发明实施例提供的一种原始图像对应的骨架图像的示意图;
66.图8是本发明实施例提供的一种断头线判断示例图;
67.图9是本发明实施例提供的一种八邻域像素的示意图;
68.图10是本发明实施例提供的焊盘数据构成的形状为矩形时的mindis的计算过程示意图;
69.图11是本发明实施例提供的pad圆形示意图;
70.图12是本发明实施例提供的pad矩形示意图;
71.图13是本发明实施例提供的pad线形示意图;
72.图14是本发明实施例提供的pad多边形示意图;
73.图15是本发明实施例提供的线段端点与pad不接触的示意图;
74.图16是本发明实施例提供的一种判断断头线的装置结构示意图;
75.图17是本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
76.为了进一步阐述本发明为达成预定发明目的所采取的技术手段及功效,以下结合附图及具体实施方式,对依据本发明提出的一种判断断头线的方法、装置、电子设备及存储介质进行详细说明。
77.有关本发明的前述及其他技术内容、特点及功效,在以下配合附图的具体实施方式详细说明中即可清楚地呈现。通过具体实施方式的说明,可对本发明为达成预定目的所采取的技术手段及功效进行更加深入且具体地了解,然而所附附图仅是提供参考与说明之用,并非用来对本发明的技术方案加以限制。
78.实施例一
79.断头线在实际应用场景中显示为一截线段上一端没有网络或其他任何连接的线,多为设计中的错误导致的,如图1所示,图1是本发明实施例提供的一种断头场景示例图,图中十字标记处所示为断头线,本实施例通过判断图像细化骨架端点数据特征识别其是否为断头线。
80.请参见图2,图2是本发明实施例提供的一种判断断头线的方法的流程图,如图所示,本实施例的判断断头线的方法,包括:
81.步骤1:获取pcb每一层的pcb版图设计数据;
82.具体地,在本实施例中,pcb版图设计数据包括:焊盘数据和铜箔图形数据。
83.其中,焊盘数据包括:焊盘标识,焊盘尺寸、形状及焊盘坐标;铜箔图形数据包括:铜箔的尺寸、形状及铜箔的坐标。
84.可选地,获取pcb每一层的pcb版图设计数据之后,将其添加到相应列表容器当中,得到list_pad:pad(焊盘)数据图形列表,list_polygon:铜箔图形数据列表,list_all:本层所有图形数据列表(本层所有图形数据列表包含:pad(焊盘)数据图形列表、铜箔图形数
据列表)。
85.步骤2:根据pcb版图设计数据,得到pcb每一层对应的原始图像;
86.请参见图3,图3是本发明实施例提供的一种原始图像示意图,pcb一层的原始图像如图3所示,需要说明的是,pcb根据电路层数分类,可分为单面板、双面板和多层板,pcb每一层对应得到一个原始图像。
87.步骤3:根据原始图像,得到若干独立轮廓裁剪图像;
88.包括:在原始图像中查找图像轮廓,得到若干独立轮廓,将原始图像清空,依次将若干独立轮廓重新绘制在原始图像的对应位置处,其中,每绘制完成一个独立轮廓,按照该独立轮廓的外接矩形对其进行裁剪,得到一个独立轮廓裁剪图像。具体地,根据pcb每一层的原始图像,查找图像轮廓,获取到若干个独立轮廓,针对每个独立轮廓,获取其外接矩形四个顶点坐标p1(a1,b1)、p2(a2,b2)、p3(a3,b3)和p4(a4,b4),将原始图像清空,并将每一个独立轮廓重新绘制在原始图像上,每次绘制完成一个独立轮廓并按照外接矩形进行裁剪得到一个独立轮廓裁剪图像,以此避免坐标数据转换,便于后续判断。请参见图4,图4是本发明实施例提供的一种轮廓裁剪前后的示意图,图中(a)图为裁剪前的图像,(b)图为按照外接矩形裁剪后的独立轮廓裁剪图像。
89.在本实施例中,轮廓数据呈现为轮廓点坐标数据,轮廓点坐标数据是通过在绘制原始图像后查找图像轮廓时,从图像轮廓中提取出来的。在本实施例中,独立轮廓定义为一组相连接的对象,或者没有任何连接的个体所形成的图形,其轮廓即为独立轮廓。
90.步骤4:对独立轮廓裁剪图像进行图像骨架提取,得到独立轮廓裁剪图像对应的骨架图像,根据骨架图像,得到线段的数据信息;
91.在本实施例中,线段的数据信息包括,线段的端点、端点坐标数据以及该端点所在线段在原始图像中的长度和宽度。
92.具体地,步骤4包括:
93.步骤4.1:对独立轮廓裁剪图像进行zhangsuen算法细化处理,得到独立轮廓裁剪图像对应的骨架图像;
94.请结合参见图5和图6,图5是本发明实施例提供的一种部分轮廓的骨架图像示意图,图6是图5中骨架端点的示意图,如图6所示,在本实施例中,独立轮廓裁剪图像为二值化图像,利用zhangsuen算法对独立轮廓裁剪图像进行细化处理,判断目标像素点周围八邻域像素点是否可以删除,通过迭代去除掉不影响图像骨架的像素点直到不能再排除掉任何像素点,得到独立轮廓裁剪图像对应的骨架图像,利用骨架图,可以获得细化后的线段的端点坐标数据,根据线段的端点坐标数据,通过判断确认该端点所在线段是否为断头线。将骨架图像拼接得到原始图像对应的骨架图像,如图7所示,图7是本发明实施例提供的一种原始图像对应的骨架图像的示意图。
95.步骤4.2:根据骨架图像,得到线段的端点、端点坐标数据以及该端点所在线段在原始图像中的长度和宽度。
96.具体地,包括:
97.步骤4.2.1:根据骨架图像,计算得到目标像素点的八邻域像素和,若八邻域像素和为1,那么该目标像素点为线段的端点,并根据原始图像得到对应的端点坐标数据;
98.具体地,请结合参见图8和图9,图8是本发明实施例提供的一种断头线判断示例
图;图9是本发明实施例提供的一种八邻域像素的示意图,图中前景值为1,背景值为0。如图9所示,像素点p1作为目标像素点,其八邻域像素和sum(p1)=p2 p3 p4 p5 p6 p7 p8 p9=1,其中,p1

p9为像素点的像素值,也就是,除目标像素点p1的像素值为1外其他八邻域(目标像素点p1相邻的上、下、左、右、左上、左下、右上、右下八个方向)像素点只有一个像素点的像素值为1,因此,判断该目标像素点为线段的端点。
99.步骤4.2.2:根据端点的八邻域像素值,得到该端点所在线段的方向趋势,根据线段的方向趋势,计算得到其在原始图像中的长度和宽度。
100.具体地,在本实施例中,如图9所示,根据p2~p9的像素值来判断该端点所在线段的方向趋势,此时,p1为前景像素,若p4值为1,则线段走向为p1

p4,其他几个方向同上,依次分为上、下、左、右、左上、左下、右上、右下八个方向。
101.该端点所在线段在原始图像中的长度和宽度计算如下:
102.(1)线段宽度计算
103.以图8和图9为例,该线段走向为p1

p4,以p1为基准点,p2

p6为x轴,p4

p8为y轴,沿x轴分别向x 1和x

1方向逼近获取像素值,直到获取到背景像素值为0时截至,每向x 1方向前进一个像素,线段宽度加一,每向x

1方向前进一个像素,线段宽度也加一;
104.(2)线段长度计算
105.在本实施例中,沿端点趋势方向判断线段长度,若像素值为1,则继续前进,误差为两个像素阶梯差,两个像素即两个像素阶梯,像素值在同一方向上连续发生了2次变化,即为阶梯差。
106.以图9为例,沿线段走向趋势y轴方向逼近,并与上一像素点的值作比较,当在线段的方向趋势上像素变化值超过2时停止,每前进一个像素,线段长度加一,此时y轴方向上前进的距离即为线段的长度。
107.需要说明的是,在计算线段长度时,每步进一个像素点计算其宽度变化即δx的变化,允许其误差范围为两个像素浮动范围,若δx在误差范围内,则线段在y轴方向继续前进,若超出误差,则停止计算,此时求得线段的最终宽度为:其中,x0、x1…
x
n
分别表示在y轴方向上每步进一个像素点,在x轴分上的宽度值。
108.步骤5:根据线段的数据信息判断线段是否为断头线。
109.具体地,包括:
110.根据pcb每一层的pcb版图设计数据中所有的焊盘数据,求取每个焊盘数据构成的形状的外接矩形,作为空间索引,根据空间索引构建pcb每一层对应的空间索引树;
111.对骨架图像中线段的端点求取外接矩形,并在空间索引树中查找是否存在与该线段端点的外接矩形接触的空间索引;
112.若不存在,则根据线段的长宽比例判断其是否为断头线;
113.若存在,则判断线段的端点与该空间索引对应的焊盘数据构成的形状是否接触,若接触,则该线段不是断头线,若不接触,则根据线段的长宽比例判断其是否为断头线。
114.在本实施例中,焊盘数据构成的形状的外接矩形的长和宽为焊盘数据构成的形状的长和宽。
115.在本实施例中,若线段的长宽比例大于或等于预设的阈值,则线段是断头线,若线
段的长宽比例小于预设的阈值,则线段不是断头线。
116.可选地,预设的长宽比例阈值为8:1,在实际应用过程中,可考虑根据具体情况对上述长宽比例阈值进行适当调整。
117.在本实施例中,当焊盘数据构成的形状为多边形,判断线段的端点与焊盘数据构成的形状是否接触,包括:
118.步骤a:计算得到线段的端点与多边形之间的最短距离mindis,包括:
119.a1:根据pnpoly算法判断线段的端点是否在多边形内,若端点在多边形内,则mindis=0;
120.a2:若端点在多边形外,则依次计算得到端点到多边形的每条边的最短距离,取最小值作为mindis。
121.步骤b:线段线宽的一半为r,若mindis≤r,则线段的端点与多边形接触,若mindis>r,则线段的端点与多边形不接触。
122.在本实施例中,当焊盘数据构成的形状为圆形,判断线段的端点与焊盘数据构成的形状是否接触,包括:
123.步骤a:计算得到端点与圆形的圆心之间的距离mindis,
[0124][0125]
其中,(x
a
,y
a
)为焊盘坐标数据,即焊盘数据构成的圆形的圆心坐标,(x,y)为端点的坐标。
[0126]
步骤b:线段线宽的一半为r,若mindis≤r r2,则线段的端点与圆形接触,若mindis>r r2,则线段的端点与圆形不接触,其中,r2为圆形的半径。
[0127]
需要说明的是,圆心坐标(x
a
,y
a
)以及圆形的半径r2,在获取pcb每一层的pcb版图设计数据时即可获得。
[0128]
在本实施例中,当焊盘数据构成的形状为直线,判断线段的端点与焊盘数据构成的形状是否接触,包括:
[0129]
步骤a:计算得到线段的端点与直线之间的最短距离mindis。
[0130]
具体地,以计算端点p到直线ab的最短距离为例,对具体计算方法进行说明,其中,端点p坐标为(x,y),a点坐标为(x1,y1),b点坐标为(x2,y2),a点坐标数据和b点坐标数据是通过焊盘坐标数据得来的。
[0131]
计算得到向量ap在向量ab方向上的投影proj,
[0132][0133]
若proj≤0,则mindis=|ap|,即mindis为向量ap的模;
[0134]
若proj≥1,则mindis=|bp|,即mindis为向量bp的模;
[0135]
若0<proj<1,则求通过a、b两点的直线方程为:
[0136]
ax by c=0=(y2‑
y1)x (x1‑
x2)y (x2·
y1‑
x1·
y2)
ꢀꢀ
(3),
[0137]
那么,端点p到该直线的最短距离
[0138]
步骤b:线段线宽的一半为r,若mindis≤r,则线段的端点与直线接触,若mindis>
r,则线段的端点与直线不接触。
[0139]
需要说明的是,在焊盘数据构成的形状为多边形时,计算端点到多边形的每条边的最短距离的方法,与计算端点与直线之间的最短距离的方法一致,在此不再赘述。
[0140]
在本实施例中,当焊盘数据构成的形状为矩形,判断线段的端点与焊盘数据构成的形状是否接触,包括:
[0141]
步骤a:根据矩形的端点坐标,计算得到矩形的中心点坐标,并以矩形的中心点为原点建立坐标系;
[0142]
步骤b:计算得到矩形的中心点到该矩形一端点的向量h;
[0143]
步骤c:将线段的端点转移到坐标系的第一象限,并计算得到矩形的中心点到线段的端点的向量v;
[0144]
步骤d:根据向量h和向量v,计算得到向量d=v

h,将向量d的负数分量设置为0,得到向量d的矢量大小为mindis;
[0145]
步骤e:线段线宽的一半为r,若mindis≤r,则线段的端点与矩形接触,若mindis>r,则线段的端点与矩形不接触。
[0146]
具体地,请参见图10,图10是本发明实施例提供的焊盘数据构成的形状为矩形时的mindis的计算过程示意图,如图所示,端点p坐标为(x,y),该矩形的左下坐标a(x1,y1),右上坐标b(x2,y2),a点坐标数据和b点坐标数据是通过焊盘坐标数据得来的。
[0147]
计算得到该矩形中心点c(rx,ry)=[(x1 x2)/2,(y1 y2)/2];取该矩形的对角线长度的一半:将端点p转到第一象限求cp向量:得到向量得到向量将向量d的负数分量设置为0,则向量d的矢量大小为mindis,即线段的端点与矩形之间的最短距离。
[0148]
值得说明的是,可选地,当焊盘数据构成的形状为矩形时,也可采用多边形的判断方式,判断线段的端点与该矩形是否接触。
[0149]
本实施例的判断断头线的方法根据pcb每一层的pcb版图设计数据得到pcb每一层对应的原始图像,根据原始图像获取其对应的骨架图像,通过骨架图像得到线段的数据信息,并根据线段的数据信息判断其是否为断头线,本方法可以有效检测断头线,防止信号干扰和电磁干扰等,从而提高了产品的性能,其次,通过自动识别断头线,减少了人工参与,避免人工参与出现的漏查隐患,也缩短了项目周期。
[0150]
实施例二
[0151]
本实施例在实施例一的基础上,以pad(焊盘)数据构成的不同的形状为例,对实施例一的判断方法进行说明。
[0152]
步骤1:获取pcb每一层的pcb版图设计数据;
[0153]
pcb版图设计数据按照属性将其分为:pad(焊盘),polygon(铜箔图形);all(所有图形数据),分别将其添加到相应列表容器当中,得到list_pad:pad数据图形列表,list_polygon:铜箔图形数据列表,list_all:本层所有图形数据列表(本层所有图形数据列表包含:pad(焊盘)数据图形列表、铜箔图形数据列表)。
[0154]
步骤2:根据pcb对应层的pcb版图设计数据,绘制得到pcb每一层对应的原始图像,记为layerimg;
[0155]
步骤3:根据layerimg查找图像轮廓,获取若干个独立轮廓,该独立轮廓的数据呈现为轮廓点坐标数据,并根据若干个独立轮廓对layerimg进行裁剪得到独立轮廓裁剪图像,记为cropimg;
[0156]
步骤4:对cropimg进行zhangsuen细化骨架算法处理,得到layerimg对应的骨架图像,并根据该骨架图像得到图像中线段的端点、端点坐标数据以及该端点所在线段在layerimg中的长度和宽度;
[0157]
具体的线段端点的判断方法,以及线段长度和宽度的计算方法,与实施例一中所述一致,在此不再赘述
[0158]
步骤5:根据线段的数据信息判断线段是否为断头线。
[0159]
具体地,根据pcb每一层的pcb版图设计数据中所有的焊盘数据,求取每个焊盘数据构成的形状的外接矩形,作为空间索引,根据空间索引构建pcb每一层对应的空间索引树;
[0160]
对骨架图像中线段的端点求取外接矩形,并在空间索引树中查找是否存在与该线段端点的外接矩形接触的空间索引;
[0161]
若不存在,则根据线段的长宽比例判断其是否为断头线,其中,预设的长宽比例阈值为8:1;
[0162]
若存在,则判断线段的端点与该空间索引对应的pad数据构成的形状是否接触,若接触,则该线段不是断头线,若不接触,则根据线段的长宽比例判断其是否为断头线。
[0163]
具体地,当pad数据构成的形状为圆形,请参见图11,图11是本发明实施例提供的pad圆形示意图,如图所示,当pad数据构成的形状为圆r2(12.68,96.54)时,线段的端点p(12.24,96.54),线段线宽的一半r=1.74,判断端点p与pad圆形是否接触。
[0164]
计算圆形pad的圆心与端点所在圆的圆心之间的距离为:
[0165][0166]
那么,端点p与pad圆形接触,进而得出此端点所在的线段不是断头线。
[0167]
当pad数据构成的形状为矩形时,请参见图12,图12是本发明实施例提供的pad矩形示意图,其中,(a)图为pad矩形示意图,(b)图为p点到矩形的距离示意图。如图所示,线段端点p(13.084,97.488),线段线宽的一半r=1.74,判断端点p与pad矩形是否接触。
[0168]
矩形的左下坐标a(12.24,96.54),右上坐标b(16.46,98.12),建立相对坐标系如图12中的(b)图所示。
[0169]
计算矩形的中心点:
[0170]
c(x,y)=((12.24 16.46)/2,(96.54 98.12)/2)=c(14.35,97.33);
[0171]
设其相对坐标系原点c

(0,0),取矩形对角线长度的一半cb,求向量h:
[0172][0173]
将端点p(13.084,97.488)转到相对坐标系中的第一象限p

(1.266,0.158)求c

p

向量v:
[0174][0175]
用v

h得到向量d:
[0176][0177]
将向量d的负数分量设置为0,得到向量d的矢量大小为mindis=0,判断mindis=0<r(1.74),则端点p接触pad矩形,近而得出此端点所在的线不是断头线。
[0178]
当pad数据构成的形状为直线时,请参见图13,图13是本发明实施例提供的pad线形示意图,如图所示,其中,端点p坐标为(4.8,2.6),线段线宽的一半r=1.74,a点坐标为(5,

2),b点坐标为(8,6),求端点p到ab的距离。
[0179]
计算向量ap(

0.2,4.6)在向量ab(3,8)的投影proj=0.496(0<proj<1),那么,计算端点p(4.8,2.6)到ab的最短距离计算如下,
[0180]
求ab的直线方程为

8x 3y 46=0,那么端点p到ab的最短距离为,
[0181][0182]
因此,判断端点p没有接触到pad线形,那么,继续根据端点p所在线段的长宽比15.869/1.74>8/1,判断此端点所在的线段是断头线。
[0183]
当pad数据构成的形状为多变形时,请参见图14,图14是本发明实施例提供的pad多边形示意图,如图所示,以poi2与poi1两个测试端点分别做射线,如果测试端点与多边形两边交点的个数都是奇数(如poi1),则该端点在多边形内,那么,mindis=0,判断该端点与pad多边形接触。
[0184]
否则(如poi2),则该端点在多边形外,那么,类似于pad是直线的情况,依次计算端点到pad多边形每条边的最短距离,如下表所示,
[0185]
表1.poi2到pad多边形每条边的最短距离
[0186][0187]
取其中最小值作为mindis=1.98331,将mindis与线段线宽的一半r=1.74进行比较,mindis>r,则该端点与pad多边形无接触,即该端点所在的线段无连接,则对该端点所在线段的长宽比进行判断,15.66/1.74=9>8/1,则此端点所在的线段是断头线。
[0188]
请参见图15,图15是本发明实施例提供的线段端点与pad不接触的示意图,如图所示,在线段端点没有接触到pad的情况下,根据线段的长宽比例判断其是否为断头线,如图中线段l1,其宽度w=2.83,长度h=24.14,h/w=8.53,其长宽比例大于8:1,符合要求,则判断此端点所在的线段是断头线,如图中线段l2,其宽度w=2.83,长度h=3.12,h/w=1.10,其长宽比例小于8:1,则判断此端点所在的线段不是断头线。
[0189]
实施例三
[0190]
请参见图16,图16是本发明实施例提供的一种判断断头线的装置结构示意图。本实施例的判断断头线的装置,包括:
[0191]
获取模块,用于获取pcb每一层的pcb版图设计数据;
[0192]
图像模块,用于根据pcb版图设计数据,得到pcb每一层对应的原始图像;
[0193]
轮廓处理模块,用于根据原始图像,得到若干独立轮廓裁剪图像;
[0194]
骨架处理模块,用于对独立轮廓裁剪图像进行图像骨架提取,得到独立轮廓裁剪
图像对应的骨架图像,根据骨架图像,得到线段的数据信息;
[0195]
判断模块,用于根据所述线段的数据信息判断所述线段是否为断头线。
[0196]
在本发明的一个实施例中,轮廓处理模块具体用于在原始图像中查找图像轮廓,得到若干独立轮廓,将原始图像清空,依次将若干独立轮廓重新绘制在原始图像的对应位置处,其中,每绘制完成一个独立轮廓,按照该独立轮廓的外接矩形对其进行裁剪,得到一个独立轮廓裁剪图像。
[0197]
在本发明的一个实施例中,骨架处理模块具体用于对独立轮廓裁剪图像进行zhangsuen算法细化处理,得到独立轮廓裁剪图像对应的骨架图像;根据骨架图像,得到线段的端点、端点坐标数据以及该端点所在线段在原始图像中的长度和宽度。
[0198]
在本发明的一个实施例中,骨架处理模块具体用于根据骨架图像,计算得到目标像素点的八邻域像素和,若八邻域像素和为1,那么该目标像素点为线段的端点,并根据原始图像得到对应的端点坐标数据;根据端点的八邻域像素值,得到该端点所在线段的方向趋势,根据线段的方向趋势,计算得到其在原始图像中的长度和宽度。
[0199]
在本发明的一个实施例中,判断模块具体用于根据pcb每一层的pcb版图设计数据中所有的焊盘数据,求取每个焊盘数据构成的形状的外接矩形,作为空间索引,根据空间索引构建pcb每一层对应的空间索引树;对骨架图像中线段的端点求取外接矩形,并在空间索引树中查找是否存在与该线段端点的外接矩形接触的空间索引;若不存在,则根据线段的长宽比例判断其是否为断头线;若存在,则判断线段的端点与该空间索引对应焊盘数据构成的形状是否接触,若接触,则该线段不是断头线,若不接触,则根据线段的长宽比例判断其是否为断头线。
[0200]
本发明实施例提供的判断断头线的装置,可以执行上述方法实施例,其实现原理和技术效果类似,在此不再赘述。
[0201]
实施例四
[0202]
请参见图17,图17是本发明实施例提供的一种电子设备的结构示意图。该电子设备1100,包括:处理器1101、通信接口1102、存储器1103和通信总线1104,其中,处理器1101,通信接口1102,存储器1103通过通信总线1104完成相互间的通信;
[0203]
存储器1103,用于存储计算机程序;
[0204]
处理器1101,用于执行所述计算机程序时,实现上述方法步骤。
[0205]
处理器1101执行所述计算机程序时实现如下步骤:获取pcb每一层的pcb版图设计数据;根据pcb版图设计数据,得到pcb每一层对应的原始图像;根据原始图像,得到若干独立轮廓裁剪图像;对独立轮廓裁剪图像进行图像骨架提取,得到独立轮廓裁剪图像对应的骨架图像,根据骨架图像,得到线段的数据信息;根据线段的数据信息判断线段是否为断头线。
[0206]
本发明实施例提供的电子设备,可以执行上述方法实施例,其实现原理和技术效果类似,在此不再赘述。
[0207]
实施例五
[0208]
本实施例提供了一种计算机可读存储介质,其上存储有计算机程序,上述计算机程序被处理器执行时实现以下步骤:
[0209]
获取pcb每一层的pcb版图设计数据;
[0210]
根据pcb版图设计数据,得到pcb每一层对应的原始图像;
[0211]
根据原始图像,得到若干独立轮廓裁剪图像;
[0212]
对独立轮廓裁剪图像进行图像骨架提取,得到独立轮廓裁剪图像对应的骨架图像,根据骨架图像,得到线段的数据信息;
[0213]
根据线段的数据信息判断所述线段是否为断头线。
[0214]
本发明实施例提供的计算机可读存储介质,可以执行上述方法实施例,其实现原理和技术效果类似,在此不再赘述。
[0215]
本领域技术人员应明白,本技术的实施例可提供为方法、装置(设备)、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式,这里将它们都统称为“模块”或“系统”。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd

rom、光学存储器等)上实施的计算机程序产品的形式。计算机程序存储/分布在合适的介质中,与其它硬件一起提供或作为硬件的一部分,也可以采用其他分布形式,如通过internet或其它有线或无线电信系统。
[0216]
应当说明的是,在本文中,术语“包括”、“包含”或者任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素。
[0217]
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。本领域的技术人员可以将本说明书中描述的不同实施例或示例进行接合和组合。
[0218]
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献