APP下载

基于角点检测的二维图像边缘平直化算法研究

2018-10-13赵瑞朋李炎炎龙伟覃宏超

机械工程师 2018年10期
关键词:角点轮廓灰度

赵瑞朋, 李炎炎, 龙伟, 覃宏超

(四川大学制造科学与工程学院,成都 610065)

0 引言

自动化、智能化早已成为机械加工行业的发展方向,在对目标物体进行自动加工程序规划前,需要获得目标物体的完整轮廓信息[1]。摄像机获取的目标物体图像经过二值化处理后得到的轮廓边缘是粗糙、不规整的,直接对其进行轮廓检测,得到的轮廓信息不便于直接开展自动加工程序规划。需要对图像中的物体的粗糙直边进行平直化处理和近似直线的曲边缘进行直线化处理,以便对目标物体进行自动加工程序规划,提高加工质量和精度。

角点是图像局部特征之一,角点是二维图像亮度变化较剧烈的点或者是图像边缘曲率为极大值的点[2]。角点具有旋转不变的特性以及不随光照条件而变化的特性。它在保留原图像的基本特征外还有效减少了图像信息的数据量[3]。近三十多年来,研究者们对于角点检测提出了不同的方法。

Moravec[4]提出了一种利用灰度方差提取特征点的算法。其算法简单,但其计算量大,运行缓慢,同时误检率较高;Kitchen和Rosenfeld[5]提出利用微积分几何算子对图像每一个像素点进行一次角点测度。将得到的度量值和标定值进行大小关系比较来判断该点是否为角点;Wang[6]提出了一个用作运动估计的流行角点检测算子,使用微分算子对灰度曲面的曲率进行计算,从而检测出角点;Beaudet[7]通过通过对图像函数二阶导数进行泰勒展开,得到Hessian矩阵H(x,y),因为该矩阵具有旋转不变性,所以可以直接从灰度图像中提取角点;SUSAN算法利用圆形模板领域的像素灰度与其圆心的相似性计算出角点响应的函数值,根据提前设定好的阈值,可以把响应函数的局部最大值点作为角点[8]。此算法过程未涉及到图像导数,所以具有较强的抗噪能力,但设定阈值不适用于一般情况。

为了解决二维图像中的物体的粗糙直边进行平直化处理和近似直线的曲边缘进行直线化处理,本文首先对二值化后的图像利用八邻域轮廓跟踪算法获取按一定顺序排列二维图像边缘的坐标集合[9],然后使用Harris角点检测得出图像的角点集合[10]。再求取两集合的交集得出按一定顺序排列的角坐标。进而计算起始角点与结束角点连线与起始角点和两角点间轮廓的中点的连线的夹角是否小于给定值来判断为原图像两角点的连线是否直线。最后利用“两点一线”原理把二维图像边缘平直化。通过大量实验证明,本文的算法对于二维图像边缘平直化不仅有着非常好的效果,而且处理速度快,具有实时性、鲁棒性和实用性。

1 八领域轮廓跟踪算法获取图像边缘坐标

图像识别效率是极其关键的问题,因此本文提出了一种八领域轮廓跟踪算法获取图像边缘坐标。该算法不但可以检测出各种复杂形状的连通体,而且速度更快。该算法可以获得边缘的所有点坐标以及边界链码。

设点p(x,y)为物体的同一个边界点,则p(x,y)的下一个边界点必在其八领域内,所以可以根据八领域信息进行边缘跟踪:首先找到位于物体左上角的一个边界点作为搜索起点,按逆时针方向,自上而下,从左到右,搜索其八领域,找到下一边界,然后以此边界点为当前点继续搜索,这一搜索过程不断重复下去,直至搜索回到搜索起点。具体实现首先要分割图像,抽取边界的Freeman链码[11],Freeman链码使用了八个方向码作为8个领接点的定义,由曲线起始点a1到终点an的,整个二维图像边缘就可以用链码的序列A=a1a2a3…an来表示出来。因此便获得了图像边缘的所有坐标,并且这些边缘坐标具有一定的方向性,是逆时针方向排列的[12]。虽然八领域轮廓跟踪算法得出了二维图像的所有边缘坐标,但并非获取图像的角点坐标,所以要用Harris角点检测获取图像的角点坐标。

2 Harris角点检测

当一个正方形窗口在二维图像上平移时,在平滑区域如图1,窗口在各个方向上没有变化。在图像边缘线上(如图2),窗口在边缘的方向上没有变化。在角点处(如图3),窗口在各个方向上具有变化。Harris角点检测正是利用了这个直观的物理现象,通过窗口在各个方向上的变化程度,决定是否为角点。

图1 在平滑区域

图2 在边缘线上

图3 在角点上

将图像窗口平移[u,v]产生灰度变化E(u,v),由I(x+μ,y+ν)=I(x,y)+IXμ+IYν+O(μ2,ν2)得到:

对于局部微小的移动量[u,v],近似表达式为

其中M是2×2矩阵,可由图像的导数求得矩阵:

其中:I(x,y)是亮度值,在这里用灰度值来表示;Ix为图像I在x方向的梯度;Iy为图像I在y方向的梯度。通过对矩阵M的分析,可以得出如果在某一点矩阵M的两个特征值都很大,那么在该点任意方向上的一个微小平移都会引起响应灰度值的较大改变[13]。从而可以判断该点就是检测到的一个角点。

在矩阵M基础上,可以把响应函数CRF定义为:

其中:det为矩阵M的行列式;trace为矩阵M的迹,也就是矩阵对角线元素的和;k为常数,一般取0.04。

我们将CRF局部极大值所在的点定义为角点。然而使用Harris角点检测法获取的角点是乱序的。边缘平直化需要每两个角点坐标是连续的。所以还需要得到按一定顺序排列的所有角点坐标。

3 获取按一定顺序排列的所有角点坐标

使用Harris角点检测只获取了图像的角点,设这些角点组成的集合为E1,并且E1中角点是无序的。因为进行二维图像边缘平直化过程中需要依次按一定顺序连接角点[14];而使用八领域轮廓跟踪算法获取了图像所有边缘坐标,设所有边缘坐标组成的集合为E2,并且E2集合中所有边缘元素是按一定顺序排列的。根据集合的意义可得,按一定顺序排列的所有角点坐标集合E=E1∩E2={k1,k2,k3,…,kn}。

4 轮廓近似直线处理

设连续两角点Kn(xn,yn)和Kn+1(xn+1,yn+1),设两角点间实际轮廓的中点为K(x,y),则由坐标Kn,Kn+1组成的向量为α=(xn+1-xn,yn+1-yn),则由坐标Kn、Kn+1组成的向量为β=(x-xn,y-yn),则由向量的夹角公式得:

设定阈值t=cos15°,当cos〈α,β〉∈[t,1]时,则默认两角点之间为直线,根据“两点一线”原理,直接连接两点,两点之间的连线就是该轮廓的边缘[15]。当cos〈α,β〉[t,1]时,则保留原轮廓的边缘。依次对k1、k2、k2、k3…kn、k1进行上述操作,进而完成二维图像的边缘平直化处理。

5 二维图像边缘平直化效果评价

图4 轮廓近似直线处理

本文算法解决二维图像快速边缘平直化问题,将本算法应用到实际图像中。图5和图6是原图,图7和图8是原图经过二值化处理后的图像,图中物体的轮廓边缘是粗糙的,不平整的,直接利用八邻域轮廓跟踪算法进行轮廓检测,得到的轮廓边缘也是粗糙不平整的,如图9和图10所示,红线为轮廓跟踪算法检测出来的轮廓。经过本算法处理后的图像如图11和图12所示,本算法很好地将物体轮廓(包括内轮廓)中粗糙直边缘平直化,其余轮廓保留下来。图6矩形的左边轮廓和图10物体的下边轮廓是近似直线的,本算法也能将其检测出来并将其平直化,获得平直的轮廓。

图5

图6

图7

图8

图9

图10

图11

图12

6 结论

本文首先对二值化后的图像利用八邻域轮廓跟踪算法获取按一定顺序排列二维图像边缘的坐标集合,然后使用Harris角点检测得出图像的角点集合。再求取两集合的交集得出按一定顺序排列的角坐标。进而判断起始角点与结束角点连线与起始角点和两角点间轮廓的中点的连线的夹角的余弦值。最后利用“两点一线”原理对边缘进行平直化。大量实验表明,本文算法是有效的,平直化效果好,处理速度快。本算法适用于国内外广泛应用于汽车家具等产品涂装生产线的喷涂机器人,使其对待喷涂物体的喷涂轨迹自动规划,进一步实现喷涂机器人的自动化和智能化。

猜你喜欢

角点轮廓灰度
一种改进的Shi-Tomasi角点检测方法
采用改进导重法的拓扑结构灰度单元过滤技术
多支撑区域模式化融合角点检测算法仿真
Bp-MRI灰度直方图在鉴别移行带前列腺癌与良性前列腺增生中的应用价值
OPENCV轮廓识别研究与实践
基于实时轮廓误差估算的数控系统轮廓控制
基于FAST角点检测算法上对Y型与X型角点的检测
高速公路主动发光轮廓标应用方案设计探讨
基于最大加权投影求解的彩色图像灰度化对比度保留算法
基于像素重排比对的灰度图彩色化算法研究