Python Opencv Hough Circles,存储访问中的致命错误

时间:2013-01-31 14:42:21

标签: python opencv hough-transform

我正在尝试使用带有opencv的Hough变换检测圆圈。

当场景中没有圆圈时,我得到一个空指针错误。我认为可以处理这种情况。

但是,当有一个圆圈时,试图操纵存储对象会给我带来错误 例如,我试图将其转换为numpy数组,但大多数情况下并非所有时间都会出现以下致命错误。
有时帧确实显示正确。

OpenCV Error: Bad argument (unrecognized or unsupported array type) in cvSetData,
    file /build/buildd/opencv-2.3.1/modules/core/src/array.cpp,

我的代码

while True:
    img = billy.get_frame()

    # Convert from BGR to HSV
    grey = cv.CreateImage(cv.GetSize(img), 8, 1)
    cv.CvtColor(img, grey, cv.CV_BGR2GRAY)

    cv2.cv.Smooth(grey, grey, cv.CV_GAUSSIAN, 7, 7)

    circles = np.array([], dtype=np.float32)

    storage = cv.CreateMat(1, 2, cv.CV_32FC3)
    try:
        cv.HoughCircles(grey, storage, cv.CV_HOUGH_GRADIENT, 2, grey.height/4, 200, 100)

        for i in range(0,len(np.asarray(storage))):
                cv.Circle(img, ( int(np.asarray(storage)[i][0][0]), int(np.asarray(storage)[i][0][1]) ), int(np.asarray(storage)[i][0][2]), cv.CV_RGB(255, 0, 0), 2, 8, 0 )
    except:
        pass

    cv.ShowImage("threshholded", img )

0 个答案:

没有答案