公司动态
机器视觉——关于各方向电容的准确区域获取(Blob分析)——基于halcon
此方法只适合贴片式电容的提取如图所示。市面上的贴片式电容根据其电容量等参数不同通常会有各种各样的颜色。在一块pcb板上如果要对电容进行检测颜色差异所带来的灰度差异不可避免为了一套参数就可以提取整张板的电容博主打算通过提取银白色锡点的方式来间接实现电容提取。当然如果看过halcon示例的学者会想到使用模板匹配的方式实现但实际工程中它的稳定性和效率还是有待商榷的。题目明确了“准确”这个话题所以关于图像转换和增强部分博主就不在此文中说明了。假设已经定位到了电容的大致位置可以是画的roi区域或者通过对位等方式大致确定的位置这个时候可以通过局部阈值分割的方式比如var_threshold算子来提取亮的锡点位置。当然要得到如图示的区域可能还得进行区域降噪这也不是此文章的重点就不过多赘述了。如果有基础的学者现在或许已经想到了很多种方法通过将这两个锡点连起来来获取到这个电容区域比如用smallest_rectangle2 gen_rectangle2、closing_rectangle1。但这些方法要么是准确度相对较差要么是无法涵盖所有方向的电容如果有工程经验的学者一定会想到一块pcb板上的电容可能会是各种方向的然而以上两种方法兼容性太差。博主结合这两种方法想到了一种比较好的方法。下面是博主的做法对于closing_rectangle1准确但无法涵盖各种方向而smallest_rectangle2 gen_rectangle2涵盖各种方向但精度差的特点博主进行了优点缺点分析最后博主结合了这两种方法优点总结出来了一种新方法。1、对于提取出的电容焊点区域用smallest_rectangle2获得其大小和方向2、再生成一个带方向的窄条状区域gen_rectangle2将短轴长度设置为13、用closing和生成的带方向的窄条区域对焊点做闭运算。通过简单的三步即可获得精度不错的电容区域如下图所示这种精度的区域如果转成xld一定可以满足例如如对一排电容直线度的检测等高精度尺寸检测任务对于缺陷检测任务这种精度绰绰有余。