错误:(-215:断言失败)函数'imshow'中的 size.width>0 && size.height>0



对于下面的代码,我收到标题中突出显示的断言失败错误。

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中围绕这个问题提出了很多建议,但不知何故,没有任何效果。

你需要添加

if cv2.waitKey(1) & 0xFF == ord('q'):
break

cv2.imshow()后.我以前遇到过同样的问题,并添加这对我有用。

最新更新