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将多个文本文件合并为一个文本的代码(便于搜索)
Mar 13 Python
Python切片用法实例教程
Sep 08 Python
Python读取网页内容的方法
Jul 30 Python
Python3结合Dlib实现人脸识别和剪切
Jan 24 Python
基于python的多进程共享变量正确打开方式
Apr 28 Python
解决Django migrate No changes detected 不能创建表的问题
May 27 Python
python解决字符串倒序输出的问题
Jun 25 Python
对python3新增的byte类型详解
Dec 04 Python
python中使用ctypes调用so传参设置遇到的问题及解决方法
Jun 19 Python
python中pygame安装过程(超级详细)
Aug 04 Python
Python类和实例的属性机制原理详解
Mar 21 Python
Matplotlib绘制条形图的方法你知道吗
Mar 21 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
利用php下载xls文件(自己动手写的)
2014/04/18 PHP
php利用smtp类实现电子邮件发送
2015/10/30 PHP
htm调用JS代码
2007/03/15 Javascript
JS 时间显示效果代码
2009/08/23 Javascript
jqplot通过ajax动态画折线图的方法及思路
2013/12/08 Javascript
解决html按钮切换绑定不同函数后点击时执行多次函数问题
2014/05/14 Javascript
new Date()问题在ie8下面的处理方法
2014/07/31 Javascript
JS实现仿QQ效果的三级竖向菜单
2015/09/25 Javascript
基于vuejs+webpack的日期选择插件
2020/05/21 Javascript
微信小程序 Toast自定义实例详解
2017/01/20 Javascript
Vue.js 中的 $watch使用方法
2017/05/25 Javascript
基于nodejs的雪碧图制作工具的示例代码
2018/11/05 NodeJs
jQuery实现的网站banner图片无缝轮播效果完整实例
2019/01/28 jQuery
详解Vue+ElementUI从零开始搭建自己的网站(一、环境搭建)
2019/04/30 Javascript
TypeScript中使用getElementXXX()的示例代码
2019/09/12 Javascript
layui 实现二级弹窗弹出之后 关闭一级弹窗的方法
2019/09/18 Javascript
vue实现五子棋游戏
2020/05/28 Javascript
简单谈谈offsetleft、offsetTop和offsetParent
2020/12/04 Javascript
Python中的zipfile模块使用详解
2015/06/25 Python
使用python3+xlrd解析Excel的实例
2018/05/04 Python
Linux(Redhat)安装python3.6虚拟环境(推荐)
2018/05/05 Python
numpy返回array中元素的index方法
2018/06/27 Python
Python文件常见操作实例分析【读写、遍历】
2018/12/10 Python
pytorch实现保证每次运行使用的随机数都相同
2020/02/20 Python
Python持续监听文件变化代码实例
2020/07/22 Python
python源文件的字符编码知识点详解
2021/03/04 Python
socket.io 和canvas 实现的共享画板功能
2019/05/22 HTML / CSS
Michael Kors香港官网:美国奢侈品品牌
2019/12/26 全球购物
幼儿园教师岗位职责
2014/03/17 职场文书
中华魂演讲稿
2014/05/13 职场文书
2015年学生会工作总结范文
2015/03/31 职场文书
单位同意报考证明
2015/06/17 职场文书
《圆的周长》教学反思
2016/02/17 职场文书
感谢信
2019/04/11 职场文书
继承Win10缺点!教你关闭Win11烦人的网络搜索
2021/11/23 数码科技
对讲机知识
2022/04/07 无线电