2016-12-16 102 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

第四個函數的參數是檢測到的圓的中心之間的最小距離。要僅查找一個圓圈,只應將此參數設置得更大。