opencv可以读取图像,自然也可以读取视频,因为视频就是图像在高速切换下的效果,所以我们可以一帧一帧去读取视频
import cv2 import numpy as np import matplotlib as plt video = cv2.VideoCapture('test.mp4') #读入视频流 # 检查是否读入正确 if video.isOpened(): open, frame = video.read() # read()方法一帧一帧地读取视频 # 这里我们用读取一帧来判断.open表示是否读入正确,是一个bool值 # frame 表示读取进来的第一帧的参数 else: open = false while open: ret, frame = video.read() # 利用循环来读取每一帧的结果 if frame is None: break if ret == True: gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) # 用于将每一帧的彩色图像变成灰度图像 cv2.imshow('result', gray) # 下面表示展示图片,一帧一帧展示, 后边的27表示ESC退出键,我们可以按esc退出播放 if cv2.waitKey(10) & 0xff == 27: break video.release() cv2.destroyAllWindows()
当然我们也可以把视频的每一帧去保存起来,利用imwrite()函数来读取
可以看到图片一帧一帧显示了出来, 就像是视频一样我们可以修改waitKey后边的数字,来调整视频的快慢