通过轮廓错误进行Python OpenCV迭代
我在用OpenCV分析一张网络摄像头拍摄的照片。然后我裁剪了图像,并将其转换为黑白图像。然后我想找到图像中的所有轮廓,并确定最大的轮廓 我正在Ubuntu操作系统的终端窗口中运行代码 以下是相关代码:通过轮廓错误进行Python OpenCV迭代,python,opencv,Python,Opencv,我在用OpenCV分析一张网络摄像头拍摄的照片。然后我裁剪了图像,并将其转换为黑白图像。然后我想找到图像中的所有轮廓,并确定最大的轮廓 我正在Ubuntu操作系统的终端窗口中运行代码 以下是相关代码: num_contours, contours = cvFindContours(contourimg, # num_contours - # of contours cvCreateMemStorage(0), # and contours
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循环在抛出这个错误之前持续了很长时间。我不确定这个轮廓和其他轮廓有什么不同
此外,有时(不经常)代码会工作,因此不会每次都发生错误。是在视频中实时完成的吗?是的,图像是从视频屏幕捕获的,但不会分析视频的每一帧