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()