视频读写

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

 

视频读写

上一篇:支付系统-概念与架构


下一篇:gcc 版本切换