как использовать круги 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'
кто-нибудь знает, где эти скрытые параметры?
спасибо
4 ответов
CV_HOUGH_GRADIENT
принадлежит cv
модуль, поэтому вам нужно будет импортировать это:
import cv2.cv as cv
и измените вызов функции на
circles = cv2.HoughCircles(gray,cv.CV_HOUGH_GRADIENT)
в моем случае я использую 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
.
Если вы используете OpenCV 3, Используйте этот код:
img = cv2.imread("act_circle.png")
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
circles = cv2.HoughCircles(gray,cv2.HOUGH_GRADIENT) # change here
для OpenCV3, cv2.HOUGH_GRADIENT этот комментарий является правильным. Итак, этот комментарий должен быть отмечен правильно. Stackflow отметил неправильный.