【检测圆心的方法】
圆心是它所在圆周所有法线的交汇处,因此只要找到这个交点,即可确定圆心,该方法所用的霍夫空间与图像空间的性质相同,因此它仅仅是二维空间。检测圆半径的方法是从圆心到圆周上的任意一点的距离相同,首先确定一个阈值,只要计算得到相同距离的数量大于该阈值,就认为该距离就是该圆心所对应的圆半径,并且该方法只需要计算半径直方图,不使用霍夫空间。圆心和圆半径都得到后,就能确定圆形了。
【霍夫变换优化】
实践证明,霍夫圆变换只能检测一些简单情形下的圆形,并且检测不出椭圆,由于之前做一个项目需要用到圆形检测(可能不是标准的圆),所以想出了一个基于轮廓的圆形检测方法。
HoughCircles函数可以利用霍夫变换算法检测出灰度图中的圆。它和之前的HoughLines和HoughLinesP比较明显的一个区别是它不需要源图是二值的,而HoughLines和HoughLinesP都需要源图为二值图像。
circles = HoughCircles(InputArray image, O