2016-12-16 101 views
2

圈最好使用python的我如何找到cv2.HoughCircles

cv2.HoughCircles 

功能。

我想找到圆这样一个形象:

enter image description here

在此图像中有一大圈,许多小圆圈。我只想要最大的。

图像具有尺寸280x300像素,但如果我设置为函数的参数minRadius = 90和maxRadius = 150

circles = cv2.HoughCircles(edges, cv2.cv.CV_HOUGH_GRADIENT, 1, 30, 
>    param1=20, 
>    param2=10, 
>    minRadius=80, 
>    maxRadius=150) 

print (circles) 

我觉得像这样的输出:

[[[ 149.5   125.5   141.63510132] 
    [ 141.5   155.5   112.5544281 ] 
    [ 173.5   144.5   103.35617828] 
    [ 115.5   134.5   98.32852936] 
    [ 173.5   105.5   87.82083893] 
    [ 174.5   176.5   85.20856476] 
    [ 130.5   99.5   83.69289398] 
    [ 105.5   165.5   81.62413788] 
    [ 141.5   187.5   80.62567902] 
    [ 75.5   134.5   104.03124237]]] 

所以,我觉得所有这些圈子都是可能的,但可能其中一个结果比其他结果要好。我怎么找到它?

+2

来自doc:_“对应于较大累加器值的圆将首先返回。”_。因此,如果您想要后处理您可以使用倒角匹配或类似的检测到的圆来查找从圆到边的最大或平均距离,那么最好的一个(在Hough“意义上”)是第一个 – Miki

+1

。 – Micka

回答

4

第四个函数的参数是检测到的圆的中心之间的最小距离。要仅查找一个圆圈,只应将此参数设置得更大。