cv2.error:视频播放结束后OpenCV(3.4.3)错误

我想要读取现有的视频,将其转换为灰度,并播放灰度视频。代码如下

import cv2
import numpy as np

# read the video
cap = cv2.VideoCapture('input.avi')

while(True):
    ret, frame = cap.read()

    # convert it into grayscale
    gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
    cv2.imshow('frame',gray)
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break
cv2.destroyAllWindows()

灰度视频一直播放到最后。当它完成播放时-弹出以下错误-

Traceback (most recent call last):
  File "D:\L1.py", line 11, in <module>
    gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
cv2.error: OpenCV(3.4.3) C:\projects\opencv-python\opencv\modules\imgproc\src\color.cpp:181: error: (-215:Assertion failed) !_src.empty() in function 'cv::cvtColor'

为什么会显示此错误?有什么解决方案吗?

我使用的是python 3.6和opencv 3.4

转载请注明出处:http://www.yaohuano3.com/article/20230526/1463831.html