首页 > 其他 > 详细

视频读写

时间:2021-08-19 08:20:14      阅读:13      评论:0      收藏:0      [点我收藏+]

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

 

视频读写

原文:https://www.cnblogs.com/kzf-99/p/15159127.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!