2016-07-28 5 views
0

내 Raspberry Pi에서 원 감지를 위해 OpenCV의 자습서 here을 따라했습니다. 이것은 다른 이미지를 제외하고 튜토리얼과 동일한 코드를 사용하고 있습니다. 내가 스크립트를 실행했을 때OpenCV Hough Circle Transform가 작동하지 않습니다.

import cv2 
import numpy as np 

img = cv2.imread('watch.jpg',0) 
img = cv2.medianBlur(img,5) 
cimg = cv2.cvtColor(img,cv2.COLOR_GRAY2BGR) 

circles = cv2.HoughCircles(img,cv2.HOUGH_GRADIENT,1,20, 
         param1=50,param2=30,minRadius=0,maxRadius=0) 
circles = np.uint16(np.around(circles)) 
for i in circles[0,:]: 
    cv2.circle(cimg,(i[0],i[1]),i[2],(0,255,0),2) 
    cv2.circle(cimg,(i[0],i[1]),2,(0,0,255),3) 

cv2.imshow('image',cimg) 
cv2.waitKey(0) 
cv2.destroyAllWindows() 

다음이 내가이 enter image description here

되게되었고,이 원본 이미지 이런 일이 원인이 무엇

enter image description here

무엇입니까?

미리 감사드립니다!

편집 :

enter image description here

+0

편집 오류는 이미지에서 원이 발견되지 않았 음을 의미합니다. 이 질문은 그것을 더 잘 설명합니다 http://stackoverflow.com/questions/38648387/opencv-hough-circle-transform-needs-8-bit-image/38660785#38660785 – Loanb222

답변

1

허프 원에 의해 발생 된 원형의 다량 변형 해당 경우 cv2.HoughCirclesparam2 인 중심 검출을위한 임계 값의 낮은 값에 의해 야기된다.

따라서 잘못된 검색을 방지하려면 param2의 값을 늘려보십시오.

더 나은 결과를 얻으려면 minRadiusmaxRadius 값을 조정할 수도 있습니다.

편집 : 난 그냥 here에서 예를 시도하고 5030maxRadius10, minRadiusparam2 변경

. 결과는 충분 :

enter image description here

C++에 기록 된 링크에서 예,하지만 당신은 자신의 알고리즘을 수정하는 매개 변수와 함수 호출의 순서를 비교할 수 있습니다.

+0

라이브 피드와 함께 Hough Circle Transform을 사용할 수 있습니까? 비디오? – Loanb222

+0

@ Loanb222 네, 물론 가능합니다. 그러나 성능은 큰 문제입니다. –

+0

파이 카메라와 함께 사용할 때 계속 오류가 발생합니다. 내 질문을 오류 – Loanb222