代码语言:javascript复制
import cv2
cap=cv2.VideoCapture('C:/Users/xpp/Desktop/2021091.avi')#读取视频
while(cap.isOpened()):
ret,frame=cap.read()#循环获取视频中每帧图像
gray=cv2.cvtColor(frame,cv2.COLOR_BGR2GRAY)#原帧图像转换为灰度图像
cv2.imshow('VideoCapture',gray)
if cv2.waitKey(1) & 0xFF == ord('q'): #按<q>键退出程序
break
cap.release()
cv2.destroyAllWindows()
算法:视频是由连续的多帧图像构成,因此,视频信号处理最终仍属图像处理范畴。但是,时间维度在视频中包含了许多有用的信息。为了获取视频,首先创建一个VideoCapature对象。其参数可以是设备的索引号,也可以是一个视频文件,设备索引号一般笔记本自带的摄像头是0,如果捕获非摄像头的视频,0改为视频文件路径。cv2.waiKey()设置适当的持续时间(帧间频率),如果设置的太低,视频会播放的很快,太大又会播的太慢,一般设为25ms即可。视频信号是重要的视觉信息来源,其中包含的信息要远大于图像,对视频的分析也是计算机视觉领域的主要研究方向之一。
ret,frame=cap.read()
- ret表示有没有读取到图像,如果为True,表示读取到图像。如果表示False,表示没有读取到图像
- frame表示截取到一帧的图像