OpenCV Python HoughCircles 错误

Dan*_*Dan 5 python opencv hough-transform

我正在开发一个检测图像中圆形形状的程序。我认为 Hough 变换是最好的,我在 OpenCV 库中找到了一个。问题是,当我尝试使用它时,出现了一个我不知道如何修复的错误。Python 的 OpenCV 没有完全实现吗?是否有修复程序运行所需的库?

这是代码:

import cv

#cv.NamedWindow("camera", 1)
capture = cv.CaptureFromCAM(0)

while True:
    img = cv.QueryFrame(capture)
    gray = cv.CreateImage(cv.GetSize(img), 8, 1)
    edges = cv.CreateImage(cv.GetSize(img), 8, 1)

    cv.CvtColor(img, gray, cv.CV_BGR2GRAY)
    cv.Canny(gray, edges, 50, 200, 3)
    cv.Smooth(gray, gray, cv.CV_GAUSSIAN, 9, 9)

    storage = cv.CreateMat(1, 2, cv.CV_32FC3)

    #This is the line that throws the error
    cv.HoughCircles(edges, storage, cv.CV_HOUGH_GRADIENT, 2, gray.height/4, 200, 100)

    #cv.ShowImage("camera", img)
    if cv.WaitKey(10) == 27:
         break
Run Code Online (Sandbox Code Playgroud)

这是我得到的错误:

OpenCV 错误:未知函数中的空 pinter (),文件 ..\..\..\..\ocv\openc\src\cxcore\cxdatastructs.cpp,第 408 行 Traceback(最近一次调用):文件“ellipse-检测 webcam.py",第 20 行,在 cv.HoughCircles(edges, storage, cv.CV_HOUGH_GRADIENT, 2, gray.height/4, 200, 100) cv.error

在此先感谢您的帮助。

pto*_*ato 1

就其价值而言,我发现cv.HoughCircles如果无法检测到图像中的圆形形状,则会中止,而不是优雅地返回空列表。