2012-10-18 13 views
12

Mam następujący kod i chcę wykryć krąg.jak używać kół hough w cv2 z python?

img = cv2.imread("act_circle.png") 
    gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) 
    circles = cv2.HoughCircles(gray,cv2.CV_HOUGH_GRADIENT) 

wygląda na to, że nie ma atrybutu, a błąd jest następujący

'module' object has no attribute 'CV_HOUGH_GRADIENT' 

Czy ktoś wie, gdzie to jest ukryte parametry?

Dzięki

Odpowiedz

19

CV_HOUGH_GRADIENT należący do modułu cv, więc trzeba zaimportować:

import cv2.cv as cv 

i zmienić wywołanie funkcji do

circles = cv2.HoughCircles(gray,cv.CV_HOUGH_GRADIENT) 
+1

lub można pominąć importowanie i po prostu powiedzieć 'koła = cv2.HoughCircles (szary, cv2.cv.CV_HOUGH_GRADIENT)' –

12

W moim przypadku, używam opencv 3.0.0 i działa on następująco:

circles = cv2.HoughCircles(gray_im, cv2.HOUGH_GRADIENT, 2, 10, np.array([]), 20, 60, m/10)[0] 

tj. Zamiast cv2.cv.CV_HOUGH_GRADIENT użyłem tylko cv2.HOUGH_GRADIENT.

3

jeśli używasz OpenCV 3, a następnie użyć tego kodu:

img = cv2.imread("act_circle.png") 
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) 
circles = cv2.HoughCircles(gray,cv2.HOUGH_GRADIENT) # change here 
Powiązane problemy