徐玉冰 程耀瑜 崔亮
摘 要:图像分割是图像处理及机器视觉领域的一项基本技术,分割方法各式各样,但都仅限于特定的对象。文章针对垫圈工件表面缺陷检测所做的分割,通过一种全新的分割方法将垫圈表面缺陷检测出来,先将目标图像掩膜成一圆环,后通过极坐标转换将圆环区域转换成矩形区域,再用Sobel算子进行Y方向上的分割,从而提取出缺陷。
关键词:图像分割;圆环;极坐标转换;Sobel算子
针对缺陷检测,最终提取缺陷都需要图像分割,从图像处理诞生以来随着技术理论的发展,研究者已提出上百种分割方法,每种方法只限特定的处理对象,针对每个图像处理场合,分割方法都是最优化的。不管是阈值分割,还是基于边缘提取的分割,整合起来都最适宜研究者的应用。
本文就是针对火花塞密封垫圈的表面缺陷(裂纹、压凹等,如图1所示)检测,研究了一种新分割方法,下面针对正面裂痕讨论这种方法的处理过程及可行性。
图像中亮圆环区域的黑色斑点就是裂痕,提取该缺陷的本质就是在亮圆环区域内查找黑色斑点。
1 缺陷图像前期处理
缺陷图像前期处理包括图像平滑、图像增强、图像匹配定位。
1.1 图像平滑
图像平滑指抑制噪声、改善图像所进行的去噪处理,也称为图像滤波。平滑目的为抑制CCD暗电流、增强器及图像传输产生的噪声,相当于在傅里叶变换中抑制高频部分,然而平滑又会造成含有图像重要信息的明显边缘变得模糊。
本处理过程采用了中值滤波,滤去了噪声,但也造成了一定程度上的图像模糊,处理效果如图2所示。
1.2 图像增强
对垫圈图像进行去噪声处理后,噪声得到了明显抑制,然而特征与背景对比度降低,特征轮廓变得模糊。为了应对检测需求,突出缺陷信息,需要增加背景与缺陷的对比度,需要用到图像增强技术。图像增强方法一般分为基于空间域的增强和基于频率域的增强,前者对图像像素灰度直接处理,后者先将图像变换到某个频率域,对变换系数进行相应处理,再通过逆变换得到增强图像[1,2]。
本处理过程采用了灰度拉伸变换对滤波后图像进行增强,处理效果如图3所示。
1.3 图像匹配定位
图像匹配定位是将同一传感器或者不同传感器在不同成像条件、不同时间下对同一物体获取的多幅图像进行空间上的匹配,或者基于已知模板到目标图像中通过一定算法进行的匹配。目标模板需要有比例的尺寸及方向,在图像中找到目标后,计算物体在模板图像和搜索图像中的关系,这种关系应尽可能在区分不同目标的前提下对目标平移、旋转以及缩放不敏感[3]。对于垫圈来说,由于是圆环,不存在方向性,所以只考虑位移不考虑旋转。
本过程采用归一化相关性的匹配方法,能够不受光照的影响,抗白噪声的干扰能力强[4],匹配结果如图4。其中,图4(a)为模板图像,用此图像创建模板,图4(b)和4(c)为两个缺陷图像匹配结果。图像平滑和图像增强过程可以称为图像预处理,经过预处理,屏蔽了图像原本的噪声等无效信息并增强了目标区域与背景区域的对比度,非常利于下一步处理的进行。图像匹配定位是对每一个工件做一个位置上的匹配,以获得工件原点坐标并进行下一步分割处理。
2 分割过程
首先针对缺陷图像做圆环外圆的拟合,并获取圆环内圆与外圆半径相差的像素个数n,然后在该拟合外圆及n基础上做一掩膜图像,并将掩膜图像与原图像运算得到缺陷图像的掩膜后图像,将该掩膜后图像中圆环转换成矩形,最后在矩形区域通过Sobel算子分割出斑点。
2.1 采用最小二值法拟合圆
经过中值滤波和灰度拉伸后,圆环外圆、内圆轮廓边缘噪声极少,此时采用最小二乘法拟合圆精度比较乐观。
最小二乘法是一种优化的数学算法,该方法通过最小误差平方和寻找一组数据的最佳拟合函数。最小二乘法用简单方法求不可知的真值,令误差平方和最小,通常用于曲线拟合。拟合该2个圆并分别获取其原点坐标(X0,Y0)及半径R1、R2,可得2个半径相差像素个数n。
2.2 掩膜
本处理过程采用掩膜的目的在于屏蔽圆环以外区域,使这部分区域不参与处理或不参与处理参数计算,或只对圆环区域作处理或统计。
该过程分四步:
(1)先做一与目标图像大小、位深一致的灰度值全部为0的图像,如图6所示。
(2)根据原点坐标(X0,Y0)及圆环外圆半径R1在图6上做出该圆,并将该圆内部像素灰度设为255,如图7所示。
(3)继续在图7中以外圆向内减n个像素做内圆,并将内圆内部所有像素灰度设为0,如图8所示。
图8即掩膜图像,它代表正常工件的形态。
将掩膜图像COPY到缺陷原图上,得到原图掩膜后的图像,也就是我们的掩膜最终效果图像,如图9所示。
2.3 圆环区域转换矩形区域
图9屏蔽了圆环以外所有区域特征,只对圆环进行处理即可,但圆环内斑点位置不确定,因为本项目设计图像分割算法查找斑点,需要在矩形区域内进行,所以要将该圆环变换为矩形,该过程通过极坐标转换直角坐标完成,转换效果如图10所示。
圆环转换成矩形,圆环内斑点相应的转换成了矩形内斑点,只需通过分割将该斑点提取出来即可。
2.4 Sobel算子分割
图像边缘是图像的基本特征,也是基于灰度突变体现的,与图像物体有所区别。对于边缘检测来说,本质是检测相邻像素灰度值突变性,最基本的检测方法是构造边缘检测算子,如罗伯特算子、Sobel算子、Prewitt算子、Kirsch算子和拉普拉斯算子等[5 ,6]。本过程采用了Sobel算子进行边缘提取分割。
一般选取3*3邻域对邻域内上下左右像素点灰度值加权平均后计算微分,从而求出梯度值。该检测一般选取两个3*3邻域(如图11),称为Sobel算子的2个卷积核,其中一个相应水平方向边缘,另一个相应垂直方向边缘。将目标像素与卷积核的中心对应,如公式1和2,先后用左边卷积核、右边卷积核对图像卷积运算,得到图像像素值的平方值,并输出两个平方和的开方根值。
最终选择Sobel算子在整幅图像区域内进行垂直方向提取边缘,即屏蔽掉水平方向矩形与背景区域边缘,图12为Sobel算子斑点检测结果。
3 OpenCV对以上算法实现
(1)中值滤波的实现:void medianBlur(InputArray src, OutputArray dst,int ksize);
其中src为源图像即待平滑图像,dst为目标图像即处理完的存储图像,ksize表示滤波窗口的尺寸,k必须为奇数并且大于1,因此k至少为3,而本项目中k就取3。
(2)模板匹配的实现:void match Template(InputArray image, InputArray templ,OutputArray result, int method);
其中image为源图像,templ为模板图像,result为输出的结果图像,method表示匹配方法,共有4个:
Ⅰ.平方差匹配method=CV_TM_SQDIFF,用平方差进行匹配,值越大匹配越差,0表示最佳匹配。
Ⅱ.标准平方差匹配method=CV_TM_SQDIFF_NORMED。
Ⅲ.相关匹配method=CV_TM_CCORR,采用模板和图像间的乘法进行操作,值越大匹配越好,0表示匹配最坏。
Ⅳ.标准相关匹配method=CV_TM_CCORR_NORMED。
本项目中采用的是标准相关匹配。
(3)圆拟合的实现:实际是根据已有轮廓拟合椭圆的方法,拟合圆也是为了掩膜图像的建立。
RotatedRectt_ellipse=fitEllipse(img_Contour[i]);
Point2f t_center=t_ellipse.center;//获取所拟合椭圆的中心坐标
float t_rh=t_ellipse.size.height/2;
float t_rw=t_ellipse.size.width/2;//获得长度方向半径和高度方向半径
float t_r=t_rh (4)图像掩膜的实现:Mat mask=Mat::zeros(t_img. size(),CV_8UC1);//建立一个8位的且与目标图像大小一致的所有像素值均为0的图像。 circle(mask,t_center,t_r,255,-1);//在上面图像上画出拟合的外圆,并将该圆内部所有像素灰度设置为255。 circle(mask,t_center,t_r-40,0,-1);//计算内圆与外圆半径相差40个像素,在上面图像中画出内圆,并将该内圆内部所有像素灰度设置为0。 以上就是掩膜图像的建立,然后每个待检图像都对应一个自己的掩膜图像,经过复制操作,待检图像特征体现出来,操作为下面语句—— t_img.copyTo(d_img,mask); 上面d_img即掩膜后显现目标特征的图像。 (5)极指数空间映射的实现:cvLogPolar(d_img,d_ dst,cvPoint2D32f(t_center.x,t_center.y),400,CV_INTER_ LINEAR+CV_WARP_FILL_OUTLIERS);
LogPolar是指把图像映射到极指数空间,即将图像中带有斑点特征的圆环展开成长矩形,以便于下一步斑点分割的处理。
(6)图像分割的实现:void Sobel(InputArray src,Out putArray dst,int ddepth,int dx,int dy,int ksize=3,do uble scale=1,double delta=0, int borderType=BORDER_ DEFAULT);
其中src为输入图像,dst为输出图像,ddepth为输出图像深度,dx、dy数值决定检测的方向,ksize为核大小(默认为3),scale为缩放因子(默认为1)。由于当前进行矩形内靠近右边的斑点检测,且只检斑点,因此设置dx=0,dy=1。
4 总结
该分割方法先用图像平滑、图像增强对原图像做了预处理,然后通过图像匹配定位获取工件中心位置坐标及旋转坐标,通过拟合圆获取圆心坐标及半径,建立掩膜图像,并对原图像进行掩膜屏蔽掉无关区域特征,对掩膜得到的圆环进行转换得到矩形目标区域,再通过Sobel算子在垂直方向上的边缘提取获得斑点即缺陷。该方法创新的核心之处在于只做垂直方向上的Sobel运算,大大减少了计算机处理量,优化了算法。
[参考文献]
[1]刘金春.基于小波变换的数字图像处理技术在变电站监控中的应用[D].南昌:华东交通大学,2007.
[2]陈朝康.牛顿迭代法在图像增强中的应用[D].西安:西安电子科技大学,2013.
[3]张显全,郭明明,唐莹,等.一种新的几何特征形状描述子[J].计算机工程与应用,2007(29):90-92.
[4]张耀宗.图像匹配算法的研究与应用[D].太原:太原理工大学,2010.
[5]杨亮,赵春江.立体视觉技术及其在农业中的应用[J].第一届国际计算机及计算技术在农业中的应用研讨会暨第一届中国农村信息化发展论坛,2008.
[6]胡尚举,田国法,申江波.边缘检测算子的分析比较[J].大众科技,2008(9):48-49.
A New Method for Segmentation of Spots in Annulus
Xu Yubing Cheng Yaoyu Cui Liang
(Information and Communication Engineering Institute,North University of China,Taiyuan 030051,China)
Abstrac:Image segmentation is a basic technology in the field of image processing and machine vision. It can be divided in various ways, but it is limited to specific objects.This article describes the segmentation of gasket surface to defect detection, it is a new segmentation method to detect detection on a gasket surface. First mask the target image into a annulus, then convert the annulus region into rectangle region and segment the rectangle in Y direction through Sobel operator, so as to extract the detection.
Key words:image segmentation;annulus;polar coordinate conversion;sobel operator