用OpenCV读取视频报错error: (-215:Assertion failed) size.width>0 && size.height>0 in function ‘cv::imsh

cv2.error: OpenCV(4.6.0) D:\a\opencv-python\opencv-python\opencv\modules\highgui\src\window.cpp:967: error: (-215:Assertion failed) size.width>0 && size.height>0 in function 'cv::imshow'
 

这个是针对读取视频文件的,在运行代码之前已经检查过文件的路径,已经是绝对路径并且也将文件的地址符号\ 改为了/ 但是依旧报错,然后到处查找资料发现

视频文件读取后使用imshow显示前需要判断文件是否读完,如果已经读完最后一帧,再继续读时获取的是None,所以提示imshow错误。

Python错误集锦:VideoCapture从视频文件读取并显示时报错error: (-215:Assertion failed) size.width>0 && size.height>0 in function ‘cv::imshow’ – 桔子code (juzicode.com)

上面的连接是答案来源

import cv2
from pynput.keyboard import Key

cv2.namedWindow('video', cv2.WINDOW_NORMAL)
# cv2.resizeWindow('video', 640, 480)

cap = cv2.VideoCapture("D:/song.mp4")

while True:
    # 从摄像头读取视频帧
    ret, frame = cap.read()

    if ret is not True:
        print("读取完成,退出")
        break
    # 将视频帧在窗口中显示
    cv2.imshow('video', frame)

    # 等待键盘事件,如果为q退出
    key = cv2.waitKey(1)              # 每一帧等待的时间
    if(Key == 'q'):
        break

# 释放VideoCapture
cap.release()
cv2.destroyAllWindows()

但是有一点还没有解决,就是按q键为啥没有结束呢 

你可能感兴趣的:(1024程序员节)