opencv Python 详述
霍夫圆检测
原理
已知圆的圆心坐标是(a,b),半径为r,则圆在xoy平面方程为(x-a)^2 + (y-b)^2 = r^2。
设在xoy平面内有3个点(1,3),(2,2),(3,3),已知三点在半径为1的圆上,则以每个点为圆心、1为半径分别做圆,则三圆交点为圆心。
则在此基础上已知xoy平面内的点(x1,y1)、(x2,y2)、……,求出哪点在同一个圆上且半径为多少,及圆心的坐标。由于多出一个参数故需要在第三维坐标r。任意一个点(xi,yi)对应到abr空间中的锥面r^2 = (a-xi) ^2 + (b-yi) ^2。若多个锥面相交于一点(a‘,b’,r’),则锥面对应的xoy平面内的点是共圆且圆心为(a’,b‘),半径为r’。
与霍夫直线检测类似,图像的霍夫圆检测就是检测那些前景或边缘像素点在同一个圆上,并给出对应圆的圆心坐标及圆的半径;并且仍然需要计数器来完成该过程。
……未完待续。。。