1.视频的读取
1).创建读取视频的对象
cap = cv.VideoCapture(filepath)
参数:
filepath:视频文件路径
2).视频的属性信息
2.1).获取视频的某些属性
retval = cap.get(propId)
参数:
propId:从0到18的数字,每个数字表示视频的属性
2.2).修改视频的属性
cap.set(propId,value)
3).检测视频是否读取成功
cv.isOpened()成功返回True,否则帆会False
4).获取每一帧图像
ret,frame = cap.read()
5).显示图像,并设置适当持续时间,默认25ms
cv.imshow()
cv.waitkey(25)
6).释放资源
cv.release()
7).销毁窗口
cv.destroyAllWindows()
import numpy as np import cv2 as cv #1.读取视频文件 cap = cv.VideoCapture(‘video.wmv‘) #判断视频是否读取成功 while(cap.isOpened()): #读取每一帧图像 ret,frame = cap.read() #获取成功显示图像 if ret == True: cv.imshow(‘frame‘,frame) if cv.waitKey(25) == True: break cap.release() cv.destroyAllWindows()
2.视频的保存
1).创建视频写入的对象
out = cv.VideoWriter(filename,fourcc,fps,frameSize)
参数:
filename:视频保存的位置
fourcc:指定视频编解码器的4字节代码
fps:帧率
frameSize:帧大小
2).设置视频的编解码器
retval:cv。VideoWriter_fourcc(c1,c2,c3,c4)
参数:
c1,c2,c3,c4是视频编解码器的4字节代码
在Windows当中:DIVX(.avi)
早OS中:MJPG(.mp4),DIVX(.avi),X264(.mkv)
3).利用cap.read()获取视频中的每一帧图像,并使用out.write()将某一帧
图像写入视频中
4).使用cap.release()和out.release()释放资源
#视频的保存 import numpy as np import cv2 as cv #1.读取视频文件 cap = cv.VideoCapture(‘video.wmv‘) #2.获取图像的属性(宽和高,)并将其转为整数 frame_width = int(cap.get(3)) frame_height = int(cap.get(4)) #3.创建保存视频对象,设置编码格式,帧率,图像的宽高 out = cv.VideoWriter(‘outppy.avi‘,cv.VideoWriter_fourcc(‘M‘,‘J‘,‘P‘,‘G‘) ,10,(frame_width,frame_height)) while(True): #4.获取视频中的每一帧图像 ret,frame = cap.read() if ret == True: #5.将每一帧图像写入输出文件中 out.write(frame) else: break #6.释放资源 cap.release() out.release() cv.destroyAllWindows()