2016-12-16 1 views
2

에서 출발하는 가장 원을 찾을 수 있습니다.내가 파이썬의</p> <pre><code>cv2.HoughCircles </code></pre> <p>기능을 사용하고 어떻게 cv2.HoughCircles

는이 같은 이미지의 원을 찾으려면 :이 이미지에서

enter image description here

큰 원과 많은 작은 원이 있습니다. 나는 가장 큰 것을 원한다.

이미지 사이즈를 280x300 픽셀을 갖지만, I는 함수의 인자로 설정하면 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) 

I는 다음과 같이 출력 발견 :

[[[ 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]]] 

그래서, I 생각을 이러한 모든 서클이 가능하지만 아마도 이러한 결과 중 하나가 다른 것보다 가장 좋습니다. 어떻게 찾을 수 있습니까?

+2

문서에서 : _ "더 큰 누적 기 값에 해당하는 원이 먼저 반환됩니다."_. 따라서 호프의 "감각"에서 가장 좋은 것은 첫 번째 경우 – Miki

+1

입니다. 감지 된 원을 처리하려면 원점에서 모서리까지의 최대 거리 또는 평균 거리를 찾기 위해 모따기 또는 유사한 방법을 사용할 수 있습니다. – Micka

답변

4

네 번째 함수의 매개 변수는 감지 된 원의 중심 사이의 최소 거리입니다. 원을 하나만 찾으려면이 매개 변수를 더 크게 설정해야합니다.