张 叶,靳卫国,于朋扬
(中国电子科技集团公司第四十五研究所,北京 100176)
图像对准是丝网印刷的关键技术,图像对准的精度直接决定了丝网印刷的好坏,因此,图像Mark点的定位具有非常重要的意义。本文针对带膜电感基片的圆环Mark点的定位需求,基于开源计算机视觉库OpenCV进行开发,对圆环图像进行形态学处理,再利用OpenCV提供的cvCanny()函数对图像进行边缘检测,进而利用cvFind-Counters()函数检索轮廓,有效地实现圆环Mark的定位。
图1所示为电感基片的Mark图像。该图像由CCD、镜头、光源、图像采集卡和计算机组成的机器视觉系统采集。图像定位需要在图像中找到圆环,并给出圆环中心在图像中的位置。
由图1可知,圆环Mark作为图像目标,与图像背景的对比度不太明显,需要对图像预处理才能实现定位。图像处理流程如图2所示,先对图像进行预处理、边缘检测,进而检索轮廓,实现圆环Mark的定位。
图1 电感基片的圆环Mark图像
图2 图像处理流程图
OpenCV (OpenSourceComputerVisionLibrary)是一个开源的计算机视觉库,它包含大量的图像处理函数,这些函数涵盖多个领域,如图像处理、模式识别、动态运动、摄像机标定、三维视觉以及机器学习等,并且执行速度快、效率高。本文使用OpenCV1.0进行图像处理并实现圆环Mark的定位。
本文原始图像全部由CCD采集。CCD采集的图像包含很大的信息量,并且存在着各种噪声。噪声对圆环Mark点的定位产生干扰问题,因此有必要对图像进行预处理。图像预处理主要通过软件编程完成图像的噪声去除、几何变换。
3.1.1 图像平滑
图像平滑是一种抑制图像噪声、改善图像质量的图像预处理方法。噪声会造成图像中原本均匀和连续变化的灰度发生突变,生成虚假的边缘信息干扰圆环Mark点的定位。图像平滑的作用主要是保留图像的主要结构、消除干扰信息、突出目标的区域。
在本文中,图像平滑采用OpenCV中的cvS-mooth()函数实现,如图3所示。
图3 平滑图像
3.1.2 图像二值化
图像二值化是图像处理中重要的处理手段。经过二值化处理的图像只有明显的黑白两色,从而将灰度范围划分为目标和背景两类,这样使图像变得简单,凸显出圆环Mark的轮廓,而且更容易获取目标区域的特征,方便图像的进一步处理。在本文中,图像二值化采用OpenCV中的cvThreshold()函数实现,如图4所示。
图4 二值化图像
3.1.3形态学处理
在图像处理中,形态学处理通常用来消除噪声、提取图像特征、检测图像边缘、纹理分析以及图像分割等。
开运算、闭运算是常见的形态学处理方法。开运算数学上是先腐蚀后膨胀的结果,它平滑了图像目标的边缘,断开了较窄的连接,消除了细小的突出部分。闭运算是先膨胀后腐蚀的过程,它可以平滑目标的轮廓,但与开运算不同,它会填充物体内细小空洞、连接邻近物体。
经过二值化后的图像,目标的边界非常不平滑,需要连续的开和闭运算改善图像。实际上是对图像进行连续的非线性滤波去噪操作。
在本文中,采用OpenCV中的cvMorphologyEx()函数实现开运算、闭运算,如图5、6所示,有效地平滑了物体的边界。
图5 开运算图像
图6 闭运算图像
边缘是图像最基本的特征,包含丰富的信息,它是图像中像素发生急剧变化的区域边界。边缘检测的实质是提取出图像中目标与背景的交界线。
本文采用的是Canny边缘检测算子来检测目标形状的边缘。Canny边缘检测算子是对信噪比与定位乘积进行检测,从而得到最优化算子。Canny边缘检测算子除了能够有效地消除噪声之外,还能清晰地提取目标形状的轮廓,并且边界曲线的连续性也比较好。图7所示为OpenCV中的cvCanny()函数实现的Canny边缘检测效果图。
图7Canny边缘检测结果图
图7 所示的Canny边缘检测结果图包含了所有的边缘信息,因此有必要对图7中的边缘信息进行轮廓检索。OpenCV提供了cvFindContours()函数用于从cvCanny()函数得到的有边缘信息的图像中检索轮廓,并且函数将检测到的每个轮廓都存储在序列里。对图7的Canny边缘检测结果图进行轮廓检索,结果如图8所示,检索得到了所有的轮廓。
图8 轮廓检索图
为识别出圆环的轮廓,需要对轮廓进行筛选。为筛选出圆环的轮廓,对利用cvFindContours()函数得到的所有轮廓进行排序,cvFindContours()函数将轮廓存储在序列里,将该序列利用算法进行排序。OpenCV提供cvContourPerimeter()函数用于计算轮廓的周长,可利用该函数筛选符合圆环的轮廓。
利用 OpenCV的 cvMinEnclosingCircle()函数求最小闭合外接圆,得到最小外接圆的圆心(x0,y0),如图9所示。
图9 圆环定位
采用其他图像验证该算法的可行性及合理性,其处理结果如图10、11、12所示。
由图可见,该算法能够有效地实现圆环Mark的定位。
图10 圆环定位
图11 圆环定位
图12 圆环定位
本文面对圆环Mark的定位需求,基于OpenCV进行圆环Mark的定位研究。利用OpenCV对图像进行预处理、边缘检测,进而检索轮廓,有效地实现了圆环Mark的定位。