式中:W为相邻像素点到边缘点距离,θ为梯度方向与x轴正向夹角。
由式(4)可得出,亚像素细分定位边缘的前提条件为:R0>R-1且R0>R1。
采用扩展的Sobel细化算子搜索单像素边缘,在搜索过程中,剔除边缘点梯度方向的非极大值,从而保证亚像像素细分定位的前提条件成立。方向模板与P-1,P1点坐标对应表如表1所示。
4 实验与结果分析
为了验证该算法,提取在线实时采集的微小零件图像进行实验。
(1)可扩展的Sobel细化算子的验证 引入灰阶Sobel算子后,得到的边缘图仍是灰阶图像,此时采用Sobel算子处理,得到边缘的边缘图。在新的边缘图上,原边缘的两侧得到新的边缘,而中间部分却变成背景,且其宽度小于原边缘。利用该特点细化原边缘,即将原边缘减去新边缘图,再将结果中与负的部分对应的边缘变为零,最后得到接近单像素宽的边缘图,从而达到细化边缘的效果,如图2所示。
(2)亚像素细分算法定位 经过扩展方向模板的Sobel细化算子后,提取接近单像素的边缘,在其梯度方向上用亚像素细分算法对图像边缘进一步定位。
图3是在原边缘基础上取一段圆弧,对其细分前后的坐标图,可以看出,经过亚像素细分算法定位后得到的像素边缘比较光滑。相对于未细分,其精确度得到提高。
(3)计算标准偏差 以单个点的像素坐标值为标准坐标值,将定位后的单点与对应点的坐标差作为算法偏差,计算得到的标准偏差约0.20 pixel。
5 结论
采用的边缘检测算法是通过扩展的4个方向的Sobel算子引入衰减因子而得到无失真的灰阶边缘图,再采用Sobel算子细化,可使较陡边缘部分光滑连续,且接近单点宽的边缘;采用二次多项式插值法在梯度方向插值后得到光滑边缘,定位精度达到0.20 pixel,适于对精度要求较高的视觉系统。