链码表和线段表在PCB孔位检测中的应用

[09-12 18:55:41]   来源:http://www.88dzw.com  PCB设计   阅读:8688

文章摘要:摘要:本文对工业上印刷电路板(Printed-Circuit Board)孔位的定位问题进行研究,达到对PCB板的打孔机进行基准调整的目的。对CCD所获取的图像进行有效的预处理,采取链码表和线段表相互结合运用,精确快速的确定PCB孔位的形心,本文的方法对形心的检测可以精确到0.001个像素级,并求出孔位的面积、周长、形状、形心。此方法在VC++6.0的平台上运行成功,其编程速度快,能达到实时、精确、智能化、成批量的检测,从很大程度上提高了PCB板检测的质量和速度。引言自动光学检测(AOI, Automated Optical Inspection)是最近这些年兴起来的一种视觉检 测方法。它是通

链码表和线段表在PCB孔位检测中的应用,标签:pcb培训,pcb是什么,pcb软件,http://www.88dzw.com

  摘要:本文对工业上印刷电路板(Printed-Circuit Board)孔位的定位问题进行研究,达到对PCB板的打孔机进行基准调整的目的。对CCD所获取的图像进行有效的预处理,采取链码表和线段表相互结合运用,精确快速的确定PCB孔位的形心,本文的方法对形心的检测可以精确到0.001个像素级,并求出孔位的面积、周长、形状、形心。此方法在VC++6.0的平台上运行成功,其编程速度快,能达到实时、精确、智能化、成批量的检测,从很大程度上提高了PCB板检测的质量和速度。

  引言

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

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


  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。


  (2)链码表的应用

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

[1] [2] [3]  下一页


Tag:PCB设计pcb培训,pcb是什么,pcb软件PCB设计

《链码表和线段表在PCB孔位检测中的应用》相关文章