图像处理——blackfin 533(十一)
0赞Hough变换的DSP实现
传统的Hough变换有以下缺点:每个边缘点映射成参数空间的一个三维锥面,是一到多的映射,计算量大,占用内存大;因此,我们使用随机Hough变换(RHT)对目标圆孔进行特征值提取。利用圆的几何性质——圆周上任意两条不平行弦的中垂线相交于圆心来确定圆心。在圆的边缘上任取两条不平行的弦p1p2和p2p3,它们的中点分别为(xa,ya)和(xb,yb),其中:
,
过弦p1p2和p2p3的中点(xa,ya)和(xb,yb)做垂线l1和l2,根据圆的几何性质可知,中垂线l1和l2必然相交于圆O的圆心(a,b),中垂线l1和l2的方程为:
式中:
因中垂线通过圆心(a,b),因此,解方程可得圆心坐标:
在圆的边缘上沿顺时针方向以一定的间隔作弦,计算相邻两条弦垂直平分线的交点坐标。每计算一次交点坐标,则在与图像映像的二维累加矩阵中与该交点坐标对应的单元内做累加计算。遍历圆的边缘后,累加矩阵中累计值最大的单元对应的图像中的坐标即为圆的圆心坐标,圆的半径可通过计算圆的边缘上各点到圆心的距离的平均值得到:
一幅图像的每个像素点可以看成一个个的小方块,像素点的值有相应的数组来储存,因此对于灰度值不为零的点,首先对所有非零像素坐标进行求平均值(a,b),由于非零像素可能包含圆外的噪声像素。因此,求得的坐标为估计值,有一定的偏差。然后计算所有非零像素点到(a,b)的距离ri,统计相同ri的个数,个数最多的ri当作半径的估计值r。选择合适的然后利用式,统计符合条件的像素,统计完所有符合条件的像素之后,对其求平均值,得到比较精确的圆心坐标。根据上述思想,课题编写了基于BF533的特征点提取程序,程序流程图如下图所示:
课题对程序进行了测试,程序中选择的阈值为10,如下图所示。图a为圆心测试的示意图,测试时,圆从左上角到右下角沿直线运动,b图为检测到的圆心坐标。
a) 圆心测试示意图 b) 检测到的圆心坐标
图 BF533的圆心检测效果