电子发烧友网 > EDA/IC设计 > 正文

链码表和线段表在高质量PCB图像处理中的应用解析

2020年04月07日 15:55 次阅读

引言

自动光学检测(AOI, Automated Optical InspecTIon)是最近这些年兴起来的一种视觉检 测方法。它是通过CCD 来获取图像,通过计算机的处理和分析比较来判断缺陷和故障。AOI 在PCB 板生产线上的应用,其优点是检测速度快,编程时间短,能大批量的对图像进行智 能检测和控制。随着工业技术的发展,对PCB 板的孔径大小的要求越来越精确,对机器的 大批量生产的要求也越来越高了。本文于某生产数孔机公司的一个项目,技术要求PCB 孔位的最小半径为0.2mm,每块PCB 板上多达2000 个的圆孔,要求总处理时间不超过10s, 处理后得到的圆心精确到0.01 个像素级,并且每个圆心与模版圆心的偏差不得超过25um, 若有80%的圆心偏差超过这个指标,即视为为不合格,那么就需要调整设备基准。

边缘是指图像中像素灰度有阶跃变化或屋顶状变化的那些像素的集合。它存在于目标与 背景 、目标与目标、区域与区域、基元与基元之间。他对图像识别和分析十分有用,边缘 能勾画出目标物体轮廓,使观察者一目了然,包含了丰实的信息[1] ,所以要获得孔位的信 息,首先得进行边缘检测和轮廓跟踪,本文用freeman 链码对边缘进行轮廓跟踪,采用链码表和线段表存储和处理数据。具体流程图如图1:

链码表和线段表在高质量PCB图像处理中的应用解析

1 图像的获取和预处理

(1)本文采用背光照明和高分辨率的相机获得高对比度和高质量的图像,图像分辨率 为409*096,图像源的质量非常重要,它将直接影响到后续图像处理的效果。

(2)采用中值滤波对图像进行平滑处理,其目的是尽量减少或消除噪声的影响,改善 图像质量。中值滤波在一定的条件下可以克服线性滤波器如最小均方滤波、均值滤波等带来 的图像细节模糊,而且对滤波脉冲干扰及图像扫描噪声最为有效,对于本文涉及的图像是 PCB 板的孔位细节缺陷,所以采取中值滤波更为合适,它的好处是既可以消除噪声又不破 坏图像的边缘。

(3)用OSTU(最大类间方差法)进行阈值分割,此方法简单且稳定有效,它是在判 定最小函数和二乘法原理的基础上自动选取阈值的二值化方法,其思路是将图像直方图用某 一灰度分割成两组,被分割成的两组中方差最大时,此灰度就被定了最佳阈值[2]。

2 用链码表和线段表[3]对图像的数据结果进行描述

(1)用Freeman 链码轮廓跟踪 Freeman 链码[4]分为八连通和四连通链码,八连通链码用中心像素指向它的8 个邻点的 方向来定义,四连通是用中心像素指向它的4 个邻点方向,取值0~3。本文运用八连通链 码,如下图2 所示,8 连通链码按顺时针方向旋转,每顺时针旋转45 度,链码值就减少1; 链码值加4,则方向反向,加8 则又回到原来的方向。链码值超过8 或者小于0 的时候,就 用模8 运算除去或者补上8。

链码表和线段表在高质量PCB图像处理中的应用解析

(2)链码表的应用

对于PCB 板中单个孔位的跟踪,本文采用Freeman 链码方式来对目标物体求取边界链 码,当搜索到某一点为目标体的灰度级时,此点即为目标体的边界点,如果此点未进行编码 过,则此点即为某一个孔位的起始点,从该点开始用Freeman 链码的方式进行轮廓跟踪,可 以跟踪到边界上每个点的链码值,并且根据中心点与各邻点坐标的偏差值,如表1,可由起 始点的坐标得到每一个边界点的坐标,即可表达为一个二维数组inc[8][2]。

链码表和线段表在高质量PCB图像处理中的应用解析

具体编码过程为:设目标物体的灰度级为G1,背景灰度级为G2。对整个PCB 板的图 像进行搜索,当某一点A 满足G1 的灰度级时,即视为边界点,从A 开始,顺时针进行搜 索孔位的边界,定义初时值为链码值等于4 的方向进行搜索下一个点,若下一个点灰度值等 于G1,即为下一个边界点,否则,搜索方向再顺时针旋转45 度,继续搜索链码值为3 的点, 这样一直找到第一个满足灰度值等于G1 的点B 为止。然后把B 作为新的边界点,并置跟 踪结束标志为0,若在邻点中没有找到边界点,则置跟踪结束标志为1,表示它为孤立点。

B 点作为新的边界点,取它的链码值为起始链码的方向,顺时针方向重复上面的跟踪,一直 到最后的一个边界点为A 点为止,单个孔位图跟踪完毕,并对此区域进行颜色填充标记, 代表已经搜索过,所跟踪的链码值存入链码表中。本文把链码表存放在一维整形数组code[ ] 中,下标为0 和1 的存放内容分别为起始边界点的坐标X 和Y,在下标为2 的单元中存放 总的链码个数N,从下标为3 的单元开始一次存放第一个边界点的链码值,第二个边界点的 链码值……一直到最后的第N 个边界点的链码值。

链码表和线段表在高质量PCB图像处理中的应用解析

3 线段表

(1)线段表的定义

由于链码表只能表示目标体的边界,而不能表示边界的内外,链码表无法表示目标体的 内部像素,但实际上,对一个图像进行处理除了要得到边界点和周长,也取得其他的参数, 如本文着重要得到的孔心数据,以及面积等,要实现内部像素的处理和运算,还需要另外的 一个种结构——线段表。

区域也可以看成由一条条水平的线段所组成。每一个线段可由它的两个端点来表示。将 区域中的所有水平线段按扫描顺利排列起来的端点表称为线段表。线段表的每一个点由两部 分组成,偶数点表示左端点的坐标,奇数点表示右端点的坐标,如果定义一个结构DOT 来 表示线段表,用一个一维数组dot[ ], 设i 表示线段的个数,则此此线段的左端点可以表示为 dot[2*i],右端点为dot[2*i+1]。

(2)线段表的应用

线段表获取了每一条线段和线段的端点值,所以通过运算可以非常方便的获取区域的内 部像素,并求出图像的其他重要参数,如本文需要求出的参数:计算区域的面积,重心;对 某个区域进行快速填充(避免重复搜索,提高效率);区域的形状参数,其公式表示为:F =L*L/4 πS

本项目的目的重在检测圆孔的圆心,所以对于区域的形状检测也尤为重要,上述公式中 L 是周长,S 是面积,通过这种比值得出的形状参数F,圆的形状参数为1,与1 的差异越 大,与圆的形状相差就越大,为了统计PCB 板孔中圆孔的个数和圆心,可以用到此形状参 数进行判断,如果在1 附近的,可以近似作为圆孔进行处理,否则直接填充为非圆孔颜色标 记,不记入结果之中。

(3) 链码表到线段表的转换[5]

用线段表表示可以得出图像其他的重要参数,与链码表向线段表的转换可以依照表2。

链码表和线段表在高质量PCB图像处理中的应用解析

链码表和线段表在高质量PCB图像处理中的应用解析

具体步骤如下:

链码经过表的转化后,得到三种类型[6]:中间点、类型号0;左端点、类型号1;右端 点、类型号2;奇异点、类型号3。根据链码表中的数据可知进入的链码值和离开的链码值, 对这两者的方向可以确定出此点的类型。在程序设计上面,可以依照表3 进行点的类型判定, 若为左右端点,则将其坐标存入临时数组中,奇异点可以看成是一个相同的左右点重合,即 应存两次,中间点不用存入。在线段表中端点按Y 坐标的大小排序,在同一行中按X 坐标 的大小排序。

4 实验结果

本实验采取本项目 PCB 图像的一个截图来进行处理,截图和处理填充后的图像如图3 所示。

链码表和线段表在高质量PCB图像处理中的应用解析

对截图用本文的算法和程序进行处理,用链码表和线段表进行数据的存储,可以得到PCB孔位的一些参数信息,如表4 所示:

链码表和线段表在高质量PCB图像处理中的应用解析

5 结束语

本文采用背光源获取高质量的PCB图像,并用OSTU阈值分割法稳定而简单的获取源 图像的二值图像,扫描并进行轮廓跟踪,采用向右追踪下一点的原则,更准备更省时,运用 链码表和线段表存储数据和数据处理,非常方便和精确地获取到PCB 板的周长,面积和孔 位形心,成功地解决了PCB 板打孔时的定位问题。本实验在Visual C++软件平台上进行 了运行和验证,可以在31us 的时间内检测并处理216个圆孔,获取本项目所要求的速度和 精度,结果证明此方法是可行的。
责任编辑;zl

下载发烧友APP

打造属于您的人脉电子圈

关注电子发烧友微信

有趣有料的资讯及技术干货

关注发烧友课堂

锁定最新课程活动及技术直播

电子发烧友观察

一线报道 · 深度观察 · 最新资讯
收藏 人收藏
分享:

评论

相关推荐

【第1期】多层高速pcb设计中那些不得不说的事

【白老师相关课程推荐】白纪龙-《实战多通道高速精密测温仪的全系列设计》点击链接即可了解课程:http://url.ele
发烧友学院发表于 2019-06-14 00:00 8609次阅读
【第1期】多层高速pcb设计中那些不得不说的事

pcb铺铜形状奇怪

pcb铺铜的时候出现如图的形状,是什么原因呀??? ...
发表于 2020-04-08 13:11 53次阅读
pcb铺铜形状奇怪

怎么在一块PCB上的多个PIC32之间创建以太网网络

大家好,有没有人在同一个板内为MCU实现了以太网络,即不需要RJ45连接器和电线?可以使用PHY、交换机等实现每...
发表于 2020-04-08 07:39 12次阅读
怎么在一块PCB上的多个PIC32之间创建以太网网络

请问有K60核心板PCB工程吗?

今年买的    K60芯片好坑,好像不能用以前的核心版,求大神给一个核心板的PCB工程...
发表于 2020-04-07 22:32 12次阅读
请问有K60核心板PCB工程吗?

virtex-6 FPGA构建PCB板需要什么?

您好 我希望你做得好 公司为virtex-6 FPGA构建PCB板需要什么? BR...
发表于 2020-04-07 14:22 16次阅读
virtex-6 FPGA构建PCB板需要什么?

请问有Tiva C LaunchPad板子的原理图下载吗?

EK-TM4C123GXL的板子,找了好久都没有找到原理图的。这个不能提供原厘图和PCB图呀 大家用了觉得好,就在上...
发表于 2020-04-07 12:38 21次阅读
请问有Tiva C LaunchPad板子的原理图下载吗?

EK-LM4F120XL LaunchPad与EK-TM4C123GXL LaunchPad的区别是什么?

如题。现在只发现主MCU的型号不一样,PCB是不是完全一致?是否都可以与BOOSTXL-SENSHUB连接实现a...
发表于 2020-04-07 12:00 24次阅读
EK-LM4F120XL LaunchPad与EK-TM4C123GXL LaunchPad的区别是什么?

主要有哪些工艺因素会对波峰焊的质量造成影响

与回流焊相比,影响波峰焊质量的工艺因素较多。为了正确地制定焊接工艺,以下分析影响波峰焊的些主要因素。....
发表于 2020-04-07 11:39 158次阅读
主要有哪些工艺因素会对波峰焊的质量造成影响

使用波峰焊造成点拉尖的原因及预防方法

波峰焊点拉尖有时称冰柱,就是波峰焊点顶部拉尖呈冰柱状,小旗状。 下面与大家分享一下波峰焊点拉尖产生原....
发表于 2020-04-07 11:39 155次阅读
使用波峰焊造成点拉尖的原因及预防方法

回流焊后锡膏不融化的主要原因与解决方法

回流焊运行焊接后,线路板上锡膏有时会发生不完全熔化的现象,全部或局部焊点周围有未熔化的残留焊膏;还有....
发表于 2020-04-07 11:18 126次阅读
回流焊后锡膏不融化的主要原因与解决方法

pcb layout如何自我学习

pcb layout如何自我学习 需要报班学习吗?有没有前辈说下. ...
发表于 2020-04-06 21:55 97次阅读
pcb layout如何自我学习

PCB电路板边缘走高速信号线的原理

对于微带传输线而言,采用宽而完整的参考平面也可以降低电场的对外辐射强度,微带传输线对应的参考平面至少....
发表于 2020-04-06 10:11 82次阅读
PCB电路板边缘走高速信号线的原理

波峰焊工艺有哪些参数可进行调试,有什么技巧

波峰焊工艺参数调节注意有调节波峰焊高度、倾角、热风、焊料纯度、助焊剂喷涂量和波峰焊温度。这里面主要要....
发表于 2020-04-05 11:32 100次阅读
波峰焊工艺有哪些参数可进行调试,有什么技巧

浅谈DC/DC电源中反馈路径的布线

Figure 7-d是不理想的布线示例。由于反馈路径是与电感平行布局的,所以因电感周边产生的磁场而诱....
发表于 2020-04-05 10:47 56次阅读
浅谈DC/DC电源中反馈路径的布线

浅谈PCB设计中散热孔的配置

在结构上是在PCB板上设置通孔,如果是单层双面PCB板,则是将PCB板表面和背面的铜箔连接,增加用于....
发表于 2020-04-05 10:08 83次阅读
浅谈PCB设计中散热孔的配置

PCB中容易弄混的名词解析

我们在画PCB的时候肯定会遇到solder Mask 和paste Mask,以前一直模模糊糊的知道....
发表于 2020-04-04 17:53 221次阅读
PCB中容易弄混的名词解析

pcb线路板铜泊概述和特点

一、pcb线路板铜泊介绍 Copperfoil(铜泊):一种阴质性电解法原材料,沉定于PCBpcb线....
发表于 2020-04-04 09:41 322次阅读
pcb线路板铜泊概述和特点

数字电路D触发器怎么实现状态机

我要给寄存器送数,希望第一个时钟脉冲送入输入的数据,后面的时钟脉冲都送入另一个寄存器里的数据。问了下老师说用D...
发表于 2020-04-03 23:16 186次阅读
数字电路D触发器怎么实现状态机

助焊层比焊盘大有什么风险

【急】咨询一下PCB工艺的问题: 有一个BGA封装,助焊层不小心设置成与阻焊层一样大小,均比焊盘层大,已经完...
发表于 2020-04-03 11:39 120次阅读
助焊层比焊盘大有什么风险

贴片机软件编程的重要性

贴片机软件编程的重要性 贴片机是SMT生产线中最为关键的一部分,而软件实力是一款贴片机设备的核心。软....
发表于 2020-04-03 09:00 74次阅读
贴片机软件编程的重要性

浅谈柔性PCB与传统PCB的不同及柔性PCB应用

FPC(柔性电路板)是PCB的一种,又被称为软板。FPC 以聚酰亚胺或聚酯薄膜等柔性基材制成,具有配....
发表于 2020-04-03 08:51 282次阅读
浅谈柔性PCB与传统PCB的不同及柔性PCB应用

请问CC2530有带PCB天线的PCB参考设计吗?

我在TI官网上只找到了带SMA天线的PCB参考设计,不知道有没有带PCB天线的参考设计的啊???求解答啊...
发表于 2020-04-03 06:20 225次阅读
请问CC2530有带PCB天线的PCB参考设计吗?

PCB选择性焊接技术的工艺特点以及工艺流程解析

典型的PCB选择性焊接技术的工艺流程包括:助焊剂喷涂,PCB预热、浸焊和拖焊。
发表于 2020-04-02 15:19 124次阅读
PCB选择性焊接技术的工艺特点以及工艺流程解析

波峰焊工艺在调试方面有哪些内容和技巧

工作中如果轨道不平行,整套机械传动装置装处于倾斜状态,也就是说整套机械运作倾斜。那么由于各处受力不均....
发表于 2020-04-02 11:40 382次阅读
波峰焊工艺在调试方面有哪些内容和技巧

回流焊接六大缺陷的产生原因及预防方法

回流焊接中我们常见的焊接缺陷有以下六种现象,下面和大家分析一下这六大回流焊接缺陷产生原因及预防。
发表于 2020-04-01 11:35 401次阅读
回流焊接六大缺陷的产生原因及预防方法

使用波峰焊后造成PCB板短路连锡的原因有哪些

波峰焊如果操作不当会造成批量的PCB焊接点短路连锡现象。PCB焊接点短路连锡也是波峰焊接中厂家最多的....
发表于 2020-04-01 11:27 353次阅读
使用波峰焊后造成PCB板短路连锡的原因有哪些

如何对小型台式回流焊机设置合理的温度曲线

为了保证焊接质量,关键就是设置好回流焊机回流炉的温度曲线,面对一台新的小型台式回流焊机,如何尽快设置....
发表于 2020-04-01 11:17 317次阅读
如何对小型台式回流焊机设置合理的温度曲线

如何从各个阶段实现控制好回流焊的质量

基础元器件回流焊接是PCB装配过程中难控制的步骤,在焊接过程中,如何控制好回流焊的质量呢?下面让我们....
发表于 2020-04-01 11:17 333次阅读
如何从各个阶段实现控制好回流焊的质量

电容滤波在PCB电路EMC设计中的作用是什么

● 即频率f越大,电容的阻抗Z越小。 ● 当低频时,电容C由于阻抗Z比较大,有用信号可以顺利通....
发表于 2020-03-31 16:21 198次阅读
电容滤波在PCB电路EMC设计中的作用是什么

陶瓷基板的表面处理工艺有哪几种,为何沉金多于镀金

镀金,一般指的是“电镀金”、“电镀镍金”、“电解金”等,有软金和硬金的区分(一般硬金是用于金手指的)....
发表于 2020-03-31 15:57 349次阅读
陶瓷基板的表面处理工艺有哪几种,为何沉金多于镀金

PCB表面处理的五种工艺解析

表面处理最基本的目的是保证良好的可焊性或电性能。由于自然界的铜在空气中倾向于以氧化物的形式存在,不大....
发表于 2020-03-31 15:31 167次阅读
PCB表面处理的五种工艺解析

回流焊机温度和时间如何设置才是比较合适的

回流焊机预热区的温度和时间设置视PCB板上热容量最大的部品、PCB面积、PCB厚度以及所用锡膏性能而....
发表于 2020-03-31 11:11 360次阅读
回流焊机温度和时间如何设置才是比较合适的

如何正确设置回流焊机的温度,有什么方法

回流焊机总体上是划分四个温区,温区的时间也都是不一样的,焊接时间与温度是决定回流焊质量的主要因数,如....
发表于 2020-03-31 11:11 397次阅读
如何正确设置回流焊机的温度,有什么方法

针对热风回流焊温度曲线的区域进行讲解

对热风回流焊来讲,其焊接过程中的焊膏需要经历以下几个过程,即溶剂的挥发,助焊剂清除焊件表面氧化物,焊....
发表于 2020-03-31 11:11 321次阅读
针对热风回流焊温度曲线的区域进行讲解

铁氟龙应用于PCB板中具有哪些使用优势

铁氟龙,学名叫聚四氟乙烯(简写为PTFE),一般称作“不粘涂层”或“易清洁物料”。这种材料具有抗酸抗....
发表于 2020-03-30 16:33 368次阅读
铁氟龙应用于PCB板中具有哪些使用优势

PCB选择性焊接工艺的流程以及特点解析

可通过与波峰焊的比较来了解选择性焊接的工艺特点。两者间最明显的差异在于波峰焊中pcb的下部完全浸入液....
发表于 2020-03-30 15:05 133次阅读
PCB选择性焊接工艺的流程以及特点解析

如何选择PCB微切片设计的树脂

峰值温度过高,会引起铜的氧化,影响切片在显微镜下的观察效果。粉液混合时会发热,如温度太高,粘度会增加....
发表于 2020-03-30 14:59 100次阅读
如何选择PCB微切片设计的树脂

SMT生产设备对PCB设计有哪些要求

SMT生产设备具有全自动、高精度、高速度、高效益等特点。PCB设计必须满足SMT设备的要求。SMT生....
发表于 2020-03-30 11:35 371次阅读
SMT生产设备对PCB设计有哪些要求

波峰焊三大主系统的参数该如何设置

发泡风量或助焊剂喷射压力要根据助焊剂接触PCB底面的情况确定:助焊剂喷涂量要求在印制板底部有均匀而薄....
发表于 2020-03-30 11:22 335次阅读
波峰焊三大主系统的参数该如何设置

关于遥控器的射频测试站

测试包括对射频载波强度和频率进行验证、对调制信号频率和占空比进行验证等等。在测试的最后,数据将被利用....
发表于 2020-03-29 16:36 81次阅读
关于遥控器的射频测试站

再流焊和波峰焊工艺对元器件布局设计有哪些要求

元器件布局要根据smt贴片加工生产设各和工艺特点进行设计。不同的工艺,如smt贴片再流焊和波峰焊,对....
发表于 2020-03-28 11:32 421次阅读
再流焊和波峰焊工艺对元器件布局设计有哪些要求

采用波峰焊工艺进行PCB设计时有哪些要求

波峰焊是将熔化的焊料,经电动泵或电磁泵喷流成设计要求的焊料波,使预先装有电子元器件的印制板通过焊料波....
发表于 2020-03-28 11:29 379次阅读
采用波峰焊工艺进行PCB设计时有哪些要求

如何对PCB设计进行合理的布局,有哪些要求

元器件布局既要满足整机电气性能和机械结构的要求,又要满足SMT生产工艺要求。由于设计引起的产品质量问....
发表于 2020-03-28 11:12 442次阅读
如何对PCB设计进行合理的布局,有哪些要求

满足再流焊和波峰焊的工艺、间距要求的布局

  元器件布局要根据smt贴片加工生产设各和工艺特点进行设计。不同的工艺,如smt贴片再流焊和波峰焊....
发表于 2020-03-28 11:04 436次阅读
满足再流焊和波峰焊的工艺、间距要求的布局

再流焊与波峰焊工艺的元器件排布要求有哪些

为了使两个端头片式元件的两侧焊端及SMD器件两侧引脚同步受热,减少由于元器件两侧焊端不能同步受热而产....
发表于 2020-03-28 11:04 354次阅读
再流焊与波峰焊工艺的元器件排布要求有哪些

PCB供应商否认苹果iPhone 12会延期

在台媒DigiTimes的最新报告中,苹果iPhone供应商和硕首席执行官廖志强表示旅行限制是影响制....
发表于 2020-03-28 09:55 413次阅读
PCB供应商否认苹果iPhone 12会延期

PCB出口业务砍单不断 积极开拓国内市场

众所周知,PCB作为电子信息产品制造的基础产业,原本受宏观经济周期波动的影响较大;此次,更因海外疫情....
发表于 2020-03-27 15:41 370次阅读
PCB出口业务砍单不断 积极开拓国内市场

对影响探测可靠性因素的工艺性方面的要求

工艺性方面主要考虑ICT自动测试的定位精度、基板大小、探针类型等影响探测可靠性的因素。
发表于 2020-03-27 11:29 369次阅读
对影响探测可靠性因素的工艺性方面的要求

为什么说无铅焊接比有铅焊接更可靠

取决于焊接合金。对于回流焊,“主流的”无铅焊接合金是Sn-Ag-Cu(SAC),而波峰焊则可能是SA....
发表于 2020-03-26 15:05 113次阅读
为什么说无铅焊接比有铅焊接更可靠