python读取和保存视频文件


Posted in Python onApril 16, 2018

为了获取视频,应该创建一个 VideoCapture 对象。他的参数可以是设备的索引号,或者是一个视频文件。设备索引号就是在指定要使用的摄像头。

一般的笔记本电脑都有内置摄像头。所以参数就是 0。你可以通过设置成 1 或者其他的来选择别的摄像头。之后,你就可以一帧一帧的捕获视频了。但是最后,别忘了停止捕获视频。

import numpy as np 
import cv2 
cap=cv2.VideoCapture(0) 
while (True): 
  ret,frame=cap.read() 
  gray=cv2.cvtColor(frame,cv2.COLOR_BGR2GRAY) 
  cv2.imshow("shiyan",gray) 
  if cv2.waitKey(1)&0xFF==ord('q'): 
    break 
cap.release() 
cv2.destroyAllWindows()

与c++很类似

cap.read() 返回一个布尔值(True/False)。如果帧读取的是正确的,就是 True。

所以最后你可以通过检查他的返回值来查看视频文件是否已经到了结尾。
有时 cap 可能不能成功的初始化摄像头设备。这种情况下上面的代码会报错。你可以使用 cap.isOpened(),来检查是否成功初始化了。如果返回值是True,那就没有问题。否则就要使用函数 cap.open()。

 你可以使用函数 cap.get(propId) 来获得视频的一些参数信息。这里propId 可以是 0 到 18 之间的任何整数。每一个数代表视频的一个属性其中的一些值可以使用 cap.set(propId,value) 来修改, value 就是你想要设置成的新值。例如,我可以使用 cap.get(3) 和 cap.get(4) 来查看每一帧的宽和高。默认情况下得到的值是 640X480。但是我可以使用 ret=cap.set(3,320)和 ret=cap.set(4,240) 来把宽和高改成 320X240。

2、保存视频

在我们捕获视频,并对每一帧都进行加工之后我们想要保存这个视频。对于图片来时很简单只需要使用 cv2.imwrite()。但对于视频来说就要多做点工作。

   这次我们要创建一个 VideoWriter 的对象。我们应该确定一个输出文件的名字。接下来指定 FourCC 编码。播放频率和帧的大小也都需要确定。最后一个是 isColor 标签。如果是 True,每一帧就是彩色图,否则就是灰度图。FourCC 就是一个 4 字节码,用来确定视频的编码格式。可用的编码列表可以从fourcc.org查到。这是平台依赖的。下面这些编码器对我来说是有用个。

• In Fedora: DIVX, XVID, MJPG, X264, WMV1, WMV2. (XVID is
more preferable. MJPG results in high size video. X264 gives
very small size video)
• In Windows: DIVX (More to be tested and added)
• In OSX : (I don't have access to OSX. Can some one fill this?)

FourCC 码以下面的格式传给程序,以 MJPG 为例:

cv2.cv.FOURCC('M','J','P','G') 或者 cv2.cv.FOURCC(*'MJPG')。

下面的代码是从摄像头中捕获视频,沿水平方向旋转每一帧并保存它。

import numpy as np 
import cv2 
cap = cv2.VideoCapture(0) 
# Define the codec and create VideoWriter object 
fourcc = cv2.cv.FOURCC(*'XVID') 
out = cv2.VideoWriter('output.avi',fourcc, 20.0, (640,480)) 
while (cap.isOpened()): 
 ret,frame=cap.read() 
 if ret==True: 
  frame=cv2.flip(frame,0) 
  out.write(frame) 
  cv2.imshow("实验",frame) 
  if cv2.waitKey(0)&0xFF==ord('q'): 
   break 
 else: 
  break 
cap.release() 
out.release() 
cv2.destroyAllWindows()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python中正则表达式的使用详解
Oct 17 Python
详解Python中的多线程编程
Apr 09 Python
Python中的命令行参数解析工具之docopt详解
Mar 27 Python
python 队列基本定义与使用方法【初始化、赋值、判断等】
Oct 24 Python
python如何使用socketserver模块实现并发聊天
Dec 14 Python
python使用gdal对shp读取,新建和更新的实例
Mar 10 Python
python实现贪吃蛇游戏源码
Mar 21 Python
Python tkinter实现简单加法计算器代码实例
May 13 Python
实例讲解Python 迭代器与生成器
Jul 08 Python
Python HTMLTestRunner如何下载生成报告
Sep 04 Python
Python读取文件夹下的所有文件实例代码
Apr 02 Python
Python 的 sum() Pythonic 的求和方法详细
Oct 16 Python
Python读取视频的两种方法(imageio和cv2)
Apr 15 #Python
python2.7实现FTP文件下载功能
Apr 15 #Python
python实现多线程网页下载器
Apr 15 #Python
Python实现定时精度可调节的定时器
Apr 15 #Python
Python编写一个优美的下载器
Apr 15 #Python
python实现音乐下载器
Apr 15 #Python
tensorflow 1.0用CNN进行图像分类
Apr 15 #Python
You might like
百度ping方法使用示例 自动ping百度
2014/01/26 PHP
PHP函数实现分页含文本分页和数字分页
2014/10/23 PHP
PHP实现根据时间戳获取周几的方法
2016/02/26 PHP
用PHP将Unicode 转化为UTF-8的实现方法(推荐)
2017/02/08 PHP
JavaScript 继承详解(三)
2009/07/13 Javascript
对xmlHttp对象的理解
2011/01/17 Javascript
javascript基于DOM实现权限选择实例分析
2015/05/14 Javascript
javascript实现选中复选框后相关输入框变灰不可用的方法
2015/08/11 Javascript
基于jquery实现放大镜效果
2015/08/17 Javascript
chrome下判断点击input上标签还是其余标签的实现方法
2016/09/18 Javascript
原生js实现返回顶部缓冲效果
2017/01/18 Javascript
ES6下React组件的写法示例代码
2017/05/04 Javascript
jQuery实现表格隔行换色
2018/09/01 jQuery
vue根据值给予不同class的实例
2018/09/29 Javascript
JavaScript的词法结构精华篇
2018/10/17 Javascript
vue router 跳转时打开新页面的示例方法
2019/07/28 Javascript
layui 数据表格+分页+搜索+checkbox+缓存选中项数据的方法
2019/09/21 Javascript
vuex实现购物车功能
2020/06/28 Javascript
python实现单线程多任务非阻塞TCP服务端
2017/06/13 Python
Python数据结构与算法之常见的分配排序法示例【桶排序与基数排序】
2017/12/15 Python
神经网络理论基础及Python实现详解
2017/12/15 Python
python机器学习之神经网络(一)
2017/12/20 Python
python爬取淘宝商品销量信息
2018/11/16 Python
Python实现将通信达.day文件读取为DataFrame
2018/12/22 Python
TensorFlow tensor的拼接实例
2020/01/19 Python
python 3.8.3 安装配置图文教程
2020/05/21 Python
Tensorflow tf.tile()的用法实例分析
2020/05/22 Python
css3中新增的样式使用示例附效果图
2014/08/19 HTML / CSS
英国最大的网上药品商店:Chemist Direct
2017/12/16 全球购物
路政管理专业个人自荐信范文
2013/11/30 职场文书
音乐教育感言
2014/03/05 职场文书
群众路线领导班子四风对照检查材料
2014/09/27 职场文书
办公室主任个人总结
2015/02/28 职场文书
2015年置业顾问工作总结
2015/04/07 职场文书
保险公司增员口号
2015/12/25 职场文书
Pyhton模块和包相关知识总结
2021/05/12 Python