python视频操作——python实现读取和保存视频
python读取和保存视频
内容来自博客+博客~
读取视频
用cv2库的好处是返回的就是arrary,不用转换,但这种方法是从头读到尾
利用cv2库读取视频,代码实现如下:
import cv2cap = cv2.VideoCapture('C:\\Users\\xxx\\Desktop\\sweet.mp4')while(cap.isOpened()):# ret返回布尔值ret, frame = cap.read()# 展示读取到的视频矩阵cv2.imshow('image', frame)# 键盘等待k = cv2.waitKey(20)# q键退出if k & 0xff == ord('q'):break# 释放资源
cap.release()
# 关闭窗口
cv2.destroyAllWindows()
读取和保存视频
- 读取视频
- 对每一帧进行处理
- 保存视频
import cv2# VideoCapture方法是cv2库提供的读取视频方法
cap = cv2.VideoCapture('C:\\Users\\xxx\\Desktop\\sweet.mp4')
# 设置需要保存视频的格式“xvid”
# 该参数是MPEG-4编码类型,文件名后缀为.avi
fourcc = cv2.VideoWriter_fourcc(*'XVID')
# 设置视频帧频
fps = cap.get(cv2.CAP_PROP_FPS)
# 设置视频大小
size = (int(cap.get(cv2.CAP_PROP_FRAME_WIDTH)),int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT)))
# VideoWriter方法是cv2库提供的保存视频方法
# 按照设置的格式来out输出
out = cv2.VideoWriter('C:\\Users\\xxx\\Desktop\\out.avi',fourcc ,fps, size)# 确定视频打开并循环读取
while(cap.isOpened()):# 逐帧读取,ret返回布尔值# 参数ret为True 或者False,代表有没有读取到图片# frame表示截取到一帧的图片ret, frame = cap.read()if ret == True:# 垂直翻转矩阵frame = cv2.flip(frame,0)out.write(frame)cv2.imshow('frame',frame)if cv2.waitKey(1) & 0xFF == ord('q'):breakelse:break# 释放资源
cap.release()
out.release()
# 关闭窗口
cv2.destroyAllWindows()
cv2.waitKey()是一个键盘绑定函数。它的时间量度是毫秒ms。函数会等待(n)里面的n毫秒,看是否有键盘输入。若有键盘输入,则返回按键的ASCII值。没有键盘输入,则返回-1.一般设置为0,它将无线等待键盘的输入。
cv2.VideoWriter_fourcc()函数
fourcc 意为四个字符代码(Four-Character Codes ),该编码由四个字符组成,下面是 VideoWriter_fourcc 对象一些常用的参数:
注意:字符顺序不能混合
- cv2.VideoWriter_fourcc(‘I’,’4’,’2’,’0’),该参数是 YUV 编码类型,文件名后缀为.avi
- cv2.VideoWriter_fourcc(‘P’,’I’,’M’,’I’),该参数是 MPEG-1 编码类型,文件名后缀为.avi
- cv2.VideoWriter_fourcc(‘X’,’V’,’I’,’D’),该参数是 MPEG-4 编码类型,文件名后缀为.avi
- cv2.VideoWriter_fourcc(‘T’,’H’,’E’,’O’),该参数是 Ogg Vorbis,文件名后缀为.ogv
- cv2.VideoWriter_fourcc(‘F’,’L’,’V’,1),该参数是 Flash 视频,文件名后缀为.flv
cv2.flip()函数
语法:
cv2.flip(src, flipCode[, dst]) #src为要操作的图像
flipCode的使用方法:
flipCode=-1 #水平垂直翻转
flipCode= 0 #垂直翻转
flipCode= 1 #水平翻转
应用:
cv2.imshow('img1',cv2.flip(img,-1))#水平垂直翻转
cv2.imshow('img2',cv2.flip(img,0))#垂直翻转
cv2.imshow('img3',cv2.flip(img,1))#水平翻转
初次编写于2021年8月23日。
python视频操作——python实现读取和保存视频相关推荐
- python打开文件夹中的tiff_浅谈python下tiff图像的读取和保存方法
对比测试 scipy.misc和 PIL.Image和 libtiff.TIFF三个库 输入: 1. (读取矩阵) 读入uint8.uint16.float32的lena.tif 2. (生成矩阵) ...
- Python-OpenCV 读取和保存视频和解决保存失败的原因分析
一.安装OpenCV # 打开终端输入,没有装pip的话装上pippip install opencv-contrib-python# 打开Python交互环境,打印opencv版本import cv ...
- python读视频文件_python读取和保存视频文件
如何用python实现视频关键帧提取并保存为图片?也许你会觉得对小编多做一点事你会觉得你很爽,可是在小编看来这是不屑的 import cv2vc = cv2.VideoCapture('Test.av ...
- python视频操作——python实现将图片合成为视频
python 将图片合成视频 内容来自博客~ 代码如下: import os import cv2# 要被合成的多张图片所在文件夹 # 路径分隔符最好使用"/",而不是" ...
- C++和Python,JSON文件的读取和保存
1. Python python很简单,因为python自带json包,所以只要import就可以,具体使用如下. import json#保存json文件 root = {'Exp':[], 'Ex ...
- OpenCV读取、保存视频
1.从相机中读取视频 ①用cv.VideoCapture()创建一个对象来绑定所要选择的摄像头. 参数为0.-1:选择第一个摄像头(一般是电脑上自带的摄像头) 参数为1:选择第二个摄像头 ②用isOp ...
- 怎么在计算机里找到CF里保存的视频,电脑怎么查看穿越火线录制保存视频?操作方法...
在Win10电脑上玩穿越火线,遇到精彩时刻我们都会录制下,好跟朋友分享,但是在Win10电脑上穿越火线录制保存之后的视频,在哪看呢?有很多用户都不知道怎么在Win10电脑查看这个穿越火线录制保存的视频 ...
- python视频操作——python实现将视频分解为图片序列
python将视频分解为图片序列 内容参考自博客~ 详细实现代码如下: import cv2# 读取视频,方法是来自cv2库的VideoCapture cap = cv2.VideoCapture(& ...
- 【成功实现】python对tif图片的读取与保存
读取tif图片: import tifffile as tiff import numpy as np img = tiff.imread('a.tif') print(img.shape) 输出形状 ...
最新文章
- canvas java 上传截图_在Vue项目中使用html2canvas生成页面截图并上传
- 小记mysql备份同库中一张表的历史记录
- vmware esxi 查看网卡、Raid卡驱动
- 清空、重设input框
- Ubuntu18.04安装Intel® oneAPI Toolkit
- 实践 config drive - 每天5分钟玩转 OpenStack(170)
- java生成大素数_用BigInteger实现大素数生成算法
- html复选框不可修改,如何用【伪类】成功修改HTML checkbox默认样式?(新checkbox覆盖老checkbox无法点击的问题)...
- 80-10-015-原理-Java NIO-ByteBuffer
- 第一个mybatis项目(IDEA+MAVEN+Junit)
- C++ 面向对象程序三大特性之 继承
- Java封装JSON数据
- java背景颜色代码_java设定背景颜色
- 在HTML中可以链接Word文档吗,为Word文档添加超文本链接就是这么简单!
- 基于控制主题的对话生成 相关论文总结
- Spring中同一个service类中方法相互调用事务不生效问题解决方案
- 【教学】深度学习小项目汇总_含源代码_包运行
- 农村的我在1024分享开始杭漂的经历和心酸,我们一起共勉~
- jenkins+docker+maven自动化部署
- 谁不喜欢《长安十二时辰》? | Alfred数据室
热门文章
- codeforces 849B Tell Your World(计算几何)
- 微信官宣:一大波 2022 新年红包封面来了,这波太秀了!!
- three.js加载3D模型,在网页上展示3D模型(.glb.gltf.fbx格式)
- 【论文查找】查找某个会议往年录用文章
- Light Emitting Hindenburg 解题思路
- 在本地计算机无法启动clipbook,依赖服务组无法启动 win7依赖服务或组无法启动 怎么弄啊...
- Java中日期格式化字符串大小写区别YYYY和yyyy
- 项目实战2 | 基于Swarm+Prometheus实现双VIP可监控Web高可用集群
- 视频音轨音量是否为0检测过程
- 商品id- item_id /条形码/skuid