如何解决“cv2。错误:(-215)size.width> 0&& size.height> 0 in function imshow”Python中的错误?

时间:2018-02-12 05:00:38

标签: python opencv ubuntu

这是我用于通过网络摄像头捕获视频的代码:

import cv2
cap = cv2.VideoCapture(0)

while True:
    ret, frame= cap.read()
    # frame= cv2.resize(frame, None,fx=0.5, fy=0.5, interpolation=cv2.INTER_AREA)
    cv2.imshow('Input', frame)
    c = cv2.waitKey(1)
    if c == 27:
        break
cap.release()
cv2.destroyAllWindows()

错误是:

  

OpenCV的错误:断言失败(size.width大于0&安培;&安培; size.height大于0)中imshow,文件/ IO / OpenCV的/模块/ highgui / SRC /窗口。    CPP,线325    回溯(最近通话最后一个):   文件 “video_capturing2.py”,10号线,在   cv2.imshow( '输入',帧)   cv2.error:/io/opencv/modules/highgui/src/window.cpp:325:错误:(-215)size.width大于0&安培;&安培; size.height>在功能IMS 0   如何

我该如何解决?每当我运行上面的代码时,ret标志永远不会是True。我试过了sudo pip3 install opencv-contrib-python,但它仍然没有帮助。

1 个答案:

答案 0 :(得分:1)

传递空图像时,

imshow失败,正如@ 101所指出的那样。在您的情况下,这很可能是因为您忽略cap.read()中的空帧并调用imshow即使cap.read返回空图像。

要解决此问题,请将while True循环替换为while cap.isOpened(),或在阅读框架之前检查cap.isOpened()是否成功。