2012-10-18 33 views
12

我有以下代碼,我想檢測該圓。如何在Python中使用cv2中的hough圈?

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

它看起來像它不具有屬性和錯誤是下面

'module' object has no attribute 'CV_HOUGH_GRADIENT' 

有誰知道這個隱藏參數是什麼?

感謝

回答

19

CV_HOUGH_GRADIENT屬於cv模塊,所以你需要導入:

import cv2.cv as cv 

,改變你的函數調用

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

或者你可以跳過導入,只是說'圈= cv2.HoughCircles(灰色,cv2.cv.CV_HOUGH_GRADIENT)' –

12

在我的情況,我我使用的是opencv 3.0.0,它的工作原理如下:

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

即代替cv2.cv.CV_HOUGH_GRADIENT,我只用了cv2.HOUGH_GRADIENT

3

,如果你使用的OpenCV 3,然後使用此代碼:

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