2012-10-18 25 views
12

Tôi có mã sau và tôi muốn phát hiện vòng tròn.làm thế nào để sử dụng vòng tròn hough trong cv2 với python?

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

có vẻ như nó không có các thuộc tính và các lỗi như sau

'module' object has no attribute 'CV_HOUGH_GRADIENT' 

Có ai biết nơi tham số ẩn này là ai?

Cảm ơn

Trả lời

19

CV_HOUGH_GRADIENT thuộc về module cv, vì vậy bạn sẽ cần phải nhập khẩu rằng:

import cv2.cv as cv 

và thay đổi cuộc gọi chức năng của bạn để

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

hoặc bạn có thể bỏ qua việc nhập khẩu và chỉ nói 'vòng tròn = cv2.HoughCircles (màu xám, cv2.cv.CV_HOUGH_GRADIENT)' –

12

Trong trường hợp của tôi, tôi đang sử dụng opencv 3.0.0 và nó hoạt động theo cách sau:

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

tức là thay vì cv2.cv.CV_HOUGH_GRADIENT, tôi đã sử dụng chỉ cv2.HOUGH_GRADIENT.

3

nếu bạn sử dụng OpenCV 3, sau đó sử dụng mã này:

img = cv2.imread("act_circle.png") 
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) 
circles = cv2.HoughCircles(gray,cv2.HOUGH_GRADIENT) # change here 
Các vấn đề liên quan