hough变换寻找圆的基础知识就不说了,网上一大推,这里主要讲应用:
函数原型
#python
circles = HoughCircles( gray_image, cv2.cv.CV_HOUGH_GRADIENT, 1, src_gray.rows/8, 200, 100, 0, 0 )
函数原型:
HoughCircles(InputArray image, int method, double dp, double minDist,double param1 = 100, double param2=100, int minRadius=0, int maxRadius=0 )
参数列表:输入图像、检测用的方法、累加器图像的反比分辨率、允许的圆心之间的最小距离、Canny边缘函数的高阈值、圆心检测阈值、能检测到的最小圆半径、能检测到的最大圆半径;
第一个参数:image 8-bit的单通道灰度图;
lll
第二个参数:method 使用的方法,当前可以使用的方法只有CV_HOUGH_GRADENT,在cv2中写作cv2.cv.CV_HOUGH_GRADENT
第四个参数:dp 累加器分辨率到图像分辨率的反比例。例如:如果dp=1,累加器有着和输入图像一样的分辨率;如果dp=2,累加器有着输入图像的width和height一半的值;
第五个参数:minDist 介于检测到的圆的中心的最小距离。如果这个参数太小,在真的圆形周围会检测到很多假的圆。如果太大,一些圆会被miss掉
第六个参数:param1 canny边缘检测高阈值。当使用CV_HOUGH_GRADIENT,这个参数表示传递给canny检测器的高限阈值,(低限阈值是这个值的一半)。这个值越大检测圆边界时,要求的亮度梯度越大,一些灰灰的不明显的边界就会略去。
第七个参数:param2 圆心检测阈值,在CV_HOUGH_GRADIENT中,这个参数是在检测阶段中圆心的累加器阈值,这个值越小,越多假的圆会被检测到,(对应于越大的累加值,越先返回,也就是进行排序,累加值越大,说明圆的可能性越高)
后两个参数:允许检测到的圆的最大和最小半径