对于以下代码,我得到断言失败错误,如标题中突出显示。
cap = cv2.VideoCapture('vtest.avi')
ret, frame = cap.read()
cv2.imshow("Feed", frame)
while cap.isOpened():
ret, frame = cap.read()
cv2.imshow("Feed", frame)
Error - cv2.error: OpenCV(4.1.1) /Users/travis/build/skvark/opencv-python/opencv/modules/highgui/src/window.cpp:352: error: (-215:Assertion failed) size.width>0 && size.height>0 in function 'imshow'
为了删除可疑路径-视频是我在其中编码的文件夹。我通过替换图片验证了路径,并且效果很好。
我还确认我可以打开视频。由于我在Mac上-我尝试使用VLC,甚至将格式转换为.mp4,因为它支持默认的quicktime播放器,但仍然存在相同的错误。如果我只是尝试从视频中获取图像,那么我会进行第一帧-我已在上面注释了该代码。
如果我尝试下面的代码集
while cap.isOpened():
ret, frame = cap.read()
if ret == True:
cv2.imshow("Feed", frame)
我再也看不到上述断言失败错误,但是供稿框架窗口打开并挂起
当cv2.imshow()无法读取视频或文件时,我将其视为常见错误。我在SO中经历了很多有关此问题的建议,但是不知怎么对我没有帮助。
答案 0 :(得分:0)
您需要添加
if cv2.waitKey(1) & 0xFF == ord('q'):
break
在cv2.imshow()
之后的。我以前也遇到过同样的问题,并且添加对我有用。