在使用HoughCircles和Python OpenCV时,如果缺少模块,我会收到错误

Fig*_*ire 11 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)
Run Code Online (Sandbox Code Playgroud)

当我尝试运行时,我得到:

AttributeError:'module'对象没有属性'HOUGH_GRADIENT'

我已经安装并重新安装了两天,试图弄清楚什么是错的.任何帮助或指针将不胜感激!

Vip*_*pul 10

添加此行:import cv2.cv as cv并更改circles

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

cv.CV_HOUGH_GRADIENT代替cv2.CV_HOUGH_GRADIENT

这将解决AttributeError你得到的问题,但你仍然会得到一个类型错误,你必须提供参数dpminDist (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)
Run Code Online (Sandbox Code Playgroud)

还请看这里解决的类似问题:

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


Cle*_*rix 9

尝试

circles = cv2.HoughCircles(grey,cv2.cv.CV_HOUGH_GRADIEN T,1.2,75)

对我有用

  • 最近的 OpenCV 改变了界面。现在正确的成语是:```circles = cv2.HoughCircles(gray, cv2.HOUGH_GRADIENT, 1.2, 75)``` (2认同)