Подтвердить что ты не робот

Как использовать круги hough в cv2 с python?

У меня есть следующий код, и я хочу определить круг.

   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'

Кто-нибудь знает, где находятся эти скрытые параметры?

Спасибо

4b9b3361

Ответ 1

CV_HOUGH_GRADIENT принадлежит модулю cv, поэтому вам нужно будет импортировать это:

import cv2.cv as cv

и смените вызов функции на

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

Ответ 2

В моем случае я использую 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