通过轮廓错误进行Python OpenCV迭代

通过轮廓错误进行Python OpenCV迭代,python,opencv,Python,Opencv,我在用OpenCV分析一张网络摄像头拍摄的照片。然后我裁剪了图像,并将其转换为黑白图像。然后我想找到图像中的所有轮廓,并确定最大的轮廓 我正在Ubuntu操作系统的终端窗口中运行代码 以下是相关代码: num_contours, contours = cvFindContours(contourimg, # num_contours - # of contours cvCreateMemStorage(0), # and contours

我在用OpenCV分析一张网络摄像头拍摄的照片。然后我裁剪了图像,并将其转换为黑白图像。然后我想找到图像中的所有轮廓,并确定最大的轮廓

我正在Ubuntu操作系统的终端窗口中运行代码

以下是相关代码:

num_contours, contours = cvFindContours(contourimg, # num_contours - # of contours
                          cvCreateMemStorage(0),    # and contours are the actual contours
                          sizeof_CvContour)         # cvFindContours() destroys contourimg

max_size = float("-inf")
max_contour = None

for contour in contours.hrange():           # contours.hrange() returns a list of all contours
    print contour
    size = abs(cvContourArea(contour))      # calculates the area of the bounding rectangle
    if size > max_size:                             
        max_size = size                     # update max_size if larger contour found
        max_contour = contour               # update max_contour if larger contour found
当我运行代码时,会出现不同的错误。一个是从python退出并返回到终端的分段错误,但另一个是:

 File "fitness.py", line 74, in boundingimg
size = abs(cvContourArea(contour))      # calculates the area of the bounding rectangle
File "/usr/lib/pymodules/python2.6/opencv/cv.py", line 6741, in cvContourArea
return _cv.cvContourArea(*args)

RuntimeError:  openCV Error:
    Status=Bad argument
    function name=cvPointSeqFromMat
    error message=Input array is not a valid matrix
    file_name=/build/buildd/opencv-2.1.0/src/cv/cvutils.cpp
    line=53
我发现这很奇怪,因为我有一个所有轮廓的打印语句,它们都工作得很好,for循环在抛出这个错误之前持续了很长时间。我不确定这个轮廓和其他轮廓有什么不同


此外,有时(不经常)代码会工作,因此不会每次都发生错误。

是在视频中实时完成的吗?是的,图像是从视频屏幕捕获的,但不会分析视频的每一帧