图像处理——blackfin 533(十)
0赞霍夫(Hough)变换是目前应用最为广泛的圆检测方法,相对其他方法,霍夫变换可靠性高,在存在噪声、变形、部分区域丢失的情况下依然能取得良好的结果。考虑到机械臂视觉伺服系统在对目标圆孔进行检测时,摄取到的图像可能与实际图像存在误差,丢失部分图像信息,所以为了满足不同条件下对图像处理的需求,我们选用Hough变换的方法来检测圆。
Hough变换是Paul Hough于1962年提出的,是从图像中识别几何形状的基本方法之一。Hough变换原理是利用图像全局特征将边缘像素连接起来组成区域封闭边界,将图像空间转换到参数空间,在参数空间对点进行描述,达到检测图像边缘的目的。该方法可以识别直线、圆、椭圆和弧线等,主要特点是对局部信息的缺损不敏感和对随机噪声的鲁棒性。
如图1所示,在xy平面有一圆O:,式中:(a,b)为圆O的圆心坐标,r为圆O的半径;点,和为圆O上任意三点。把x-y平面上的圆转换到a-b-r参数空间,则图像空间中同一圆上的点对应于参数空间中交于一点的所有三维锥面。这样通过检测这一点可以得到圆的参数,相应的圆也可求得了。图像平面上的圆转化为参数平面上的三维锥面的示意图如图1所示。
图1 Hough变换检测圆示意图
传统的Hough变换有以下缺点:每个边缘点映射成参数空间的一个三维锥面,是一到多的映射,计算量大,占用内存大;因此,我们使用随机Hough变换(RHT)对目标圆孔进行特征值提取。利用圆的几何性质——圆周上任意两条不平行弦的中垂线相交于圆心来确定圆心,如图2所示。在圆的边缘上任取两条不平行的弦p1p2和p2p3,它们的中点分别为(xa,ya)和(xb,yb),其中:
,
过弦p1p2和p2p3的中点(xa,ya)和(xb,yb)做垂线l1和l2,根据圆的几何性质可知,中垂线l1和l2必然相交于圆O的圆心(a,b),中垂线l1和l2的方程为:
,其中
因中垂线通过圆心(a,b),因此,解方程可得圆心坐标:
在圆的边缘上沿顺时针方向以一定的间隔作弦,计算相邻两条弦垂直平分线的交点坐标。每计算一次交点坐标,则在与图像映像的二维累加矩阵中与该交点坐标对应的单元内做累加计算。遍历圆的边缘后,累加矩阵中累计值最大的单元对应的图像中的坐标即为圆的圆心坐标,圆的半径可通过计算圆的边缘上各点到圆心的距离的平均值得到。
图2 随机Hough变换检测圆心示意图
图3 特征值提取结果