cv版的读取视频和Opencv C++版没什么差别,但是cv2版读取视频却有一些差别,也费了些小周折写了个最简单的播放视频程序:
cv版视频利用img = cv.QueryFrame(capture) 直接获取视频,没有什么异议,但是cv2版里captue.read()返回是一个结构,通过尝试发现返回的ret为帧读取成功标识,prev为读取到的视频帧,如果不进行if ret ==True判断,视频播放结束会提示错误,如下这么写就不会有问题了
import cv2
capture = cv2.VideoCapture("E:/Megamind.avi")
if capture.isOpened():
while True:
ret, prev = capture.read()
if ret==True:
cv2.imshow('video', prev)
else:
break
if cv2.waitKey(20)==27:
break
cv2.destroyAllWindows()