Я получаю сообщение об ошибке при использовании HoughCircles с Python OpenCV, что модуль отсутствует

У меня есть небольшой блок тестового кода, который пытается обработать простую фотографию с помощью шара:

#!/usr/local/bin/python
import cv2
import numpy as np

img = cv2.imread("b.jpg")
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
circles = cv2.HoughCircles(gray,cv2.CV_HOUGH_GRADIENT)

Когда я пытаюсь запустить это, я получаю:

AttributeError: объект 'module' не имеет атрибута 'HOUGH_GRADIENT'

Я устанавливал и переустанавливал в течение двух дней, пытаясь понять, что случилось. Любая помощь или указатели будут оценены!

Ответ 1

добавьте эту строку: import cv2.cv as cv и измените circles

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

то есть. cv.CV_HOUGH_GRADIENT вместо cv2.CV_HOUGH_GRADIENT

Это решит AttributeError, который вы получили, но все же вы получите ошибку типа, вам нужно будет предоставить аргументы для dp и minDist (аргументы в pos 3 и pos 4) и которые вы можете дать соответственно. (Здесь я дал 1 и 10)

#!/usr/local/bin/python
import cv2
import cv2.cv as cv
import numpy as np

img = cv2.imread("test.jpg")
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
circles = cv2.HoughCircles(gray,cv.CV_HOUGH_GRADIENT, 1, 10)

также см. аналогичную проблему, решенную здесь:

http://answers.opencv.org/question/1497/errors-with-cv2houghcircles/

Ответ 2

попробовать

круги = cv2.HoughCircles(серый, cv2.cv.CV_HOUGH_GRADIEN T, 1.2, 75)

работает, мне