有很多使用的例子
while (cap.isopened()):
循环播放一段视频,但我发现它总是在最后一帧出现错误。我目前正在使用它
while (cap.get(1) < cap.get(7)):
但是我需要做些什么才能使第一种方法起作用而不出错吗?
我只是在 while 循环中做正常的事情;示例如下:
while (cap.get(1) < cap.get(7)): #(cap.isOpened()):
ret, frame = cap.read()
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
cv2.imshow('frame',gray)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
最佳答案
第一种方法很可能会失败,因为您在视频结束后读取一帧(因此得到一个空白帧),然后尝试对该空白帧执行不允许的操作。您可以添加一个检查以查看您得到的框架是否为空白:
while(cap.isOpened()):
ret, frame = cap.read()
if frame is None:
break
我相信这应该可以解决问题。
关于python - while (cap.isopened()) 错误 : in python using cv2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27148047/