【问题标题】:I get a error when using HoughCircles with Python OpenCV that a module is missing [duplicate]将 HoughCircles 与 Python OpenCV 一起使用时出现错误,模块丢失 [重复]
【发布时间】:2014-03-07 04:30:08
【问题描述】:

我有一个小测试代码块,试图处理一张带有球的简单照片:

#!/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'

我已经安装和重新安装了两天,试图找出问题所在。 任何帮助或指点将不胜感激!

【问题讨论】:

  • 您使用的是哪个版本的 OpenCV?

标签: python opencv


【解决方案1】:

添加这一行: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)

也请在此处查看已解决的类似问题:

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

【讨论】:

    【解决方案2】:

    试试

    circles = cv2.HoughCircles(灰色, cv2.cv.CV_HOUGH_GRADIENT, 1.2, 75)

    对我有用

    【讨论】:

    • 最近的 OpenCV 改变了界面。现在正确的成语是:circles = cv2.HoughCircles(gray, cv2.HOUGH_GRADIENT, 1.2, 75)
    猜你喜欢
    • 2020-07-10
    • 1970-01-01
    • 2012-09-12
    • 2011-08-22
    • 1970-01-01
    • 2020-10-09
    • 1970-01-01
    • 2019-12-12
    • 2021-03-16
    相关资源
    最近更新 更多