基于OpenCV的圆环Mark定位研究

2018-12-27 07:01靳卫国于朋扬
电子工业专用设备 2018年6期
关键词:圆环图像处理轮廓

张 叶,靳卫国,于朋扬

(中国电子科技集团公司第四十五研究所,北京 100176)

图像对准是丝网印刷的关键技术,图像对准的精度直接决定了丝网印刷的好坏,因此,图像Mark点的定位具有非常重要的意义。本文针对带膜电感基片的圆环Mark点的定位需求,基于开源计算机视觉库OpenCV进行开发,对圆环图像进行形态学处理,再利用OpenCV提供的cvCanny()函数对图像进行边缘检测,进而利用cvFind-Counters()函数检索轮廓,有效地实现圆环Mark的定位。

1 分析

图1所示为电感基片的Mark图像。该图像由CCD、镜头、光源、图像采集卡和计算机组成的机器视觉系统采集。图像定位需要在图像中找到圆环,并给出圆环中心在图像中的位置。

由图1可知,圆环Mark作为图像目标,与图像背景的对比度不太明显,需要对图像预处理才能实现定位。图像处理流程如图2所示,先对图像进行预处理、边缘检测,进而检索轮廓,实现圆环Mark的定位。

图1 电感基片的圆环Mark图像

图2 图像处理流程图

2 OpenCV特点

OpenCV (OpenSourceComputerVisionLibrary)是一个开源的计算机视觉库,它包含大量的图像处理函数,这些函数涵盖多个领域,如图像处理、模式识别、动态运动、摄像机标定、三维视觉以及机器学习等,并且执行速度快、效率高。本文使用OpenCV1.0进行图像处理并实现圆环Mark的定位。

3 圆环定位实现

3.1 图像预处理

本文原始图像全部由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 闭运算图像

3.2 边缘检测

边缘是图像最基本的特征,包含丰富的信息,它是图像中像素发生急剧变化的区域边界。边缘检测的实质是提取出图像中目标与背景的交界线。

本文采用的是Canny边缘检测算子来检测目标形状的边缘。Canny边缘检测算子是对信噪比与定位乘积进行检测,从而得到最优化算子。Canny边缘检测算子除了能够有效地消除噪声之外,还能清晰地提取目标形状的轮廓,并且边界曲线的连续性也比较好。图7所示为OpenCV中的cvCanny()函数实现的Canny边缘检测效果图。

图7Canny边缘检测结果图

3.3 轮廓检索

图7 所示的Canny边缘检测结果图包含了所有的边缘信息,因此有必要对图7中的边缘信息进行轮廓检索。OpenCV提供了cvFindContours()函数用于从cvCanny()函数得到的有边缘信息的图像中检索轮廓,并且函数将检测到的每个轮廓都存储在序列里。对图7的Canny边缘检测结果图进行轮廓检索,结果如图8所示,检索得到了所有的轮廓。

图8 轮廓检索图

3.4 轮廓识别

为识别出圆环的轮廓,需要对轮廓进行筛选。为筛选出圆环的轮廓,对利用cvFindContours()函数得到的所有轮廓进行排序,cvFindContours()函数将轮廓存储在序列里,将该序列利用算法进行排序。OpenCV提供cvContourPerimeter()函数用于计算轮廓的周长,可利用该函数筛选符合圆环的轮廓。

利用 OpenCV的 cvMinEnclosingCircle()函数求最小闭合外接圆,得到最小外接圆的圆心(x0,y0),如图9所示。

图9 圆环定位

3.5 算法检测

采用其他图像验证该算法的可行性及合理性,其处理结果如图10、11、12所示。

由图可见,该算法能够有效地实现圆环Mark的定位。

图10 圆环定位

图11 圆环定位

图12 圆环定位

4 结束语

本文面对圆环Mark的定位需求,基于OpenCV进行圆环Mark的定位研究。利用OpenCV对图像进行预处理、边缘检测,进而检索轮廓,有效地实现了圆环Mark的定位。

猜你喜欢
圆环图像处理轮廓
加权全能量最小的圆环形变
猪圆环病毒病的发生、诊断和防治
一例鸭圆环病毒病的诊断
OPENCV轮廓识别研究与实践
基于实时轮廓误差估算的数控系统轮廓控制
基于图像处理的机器人精确抓取的设计与实现
圆环上的覆盖曲面不等式及其应用
机器学习在图像处理中的应用
高速公路主动发光轮廓标应用方案设计探讨
基于图像处理的定位器坡度计算