Python读取视频的两种方法(imageio和cv2)


Posted in Python onApril 15, 2018

用python读取视频有两种主要方法,大家可依据自己的需求进行使用。

方法一:

使用imageio库,没有安装的可用pip安装或自己下载,安装好后重启终端即可调用。

import pylab
import imageio
#视频的绝对路径
filename = '/path/to/your/video.mp4'
#可以选择解码工具
vid = imageio.get_reader(filename, 'ffmpeg')
for im in enumerate(vid):
 #image的类型是mageio.core.util.Image可用下面这一注释行转换为arrary
 #image = skimage.img_as_float(im).astype(np.float32)
 fig = pylab.figure()
 fig.suptitle('image #{}'.format(num), fontsize=20)
 pylab.imshow(image)
pylab.show()

方法二:

用cv2库,用这种方法的好处是返回的就是arrary,不用转换,但方法一可以指定显示某一帧,而这种方法是从头读到尾。

import numpy as np
import matplotlib.pyplot as plt
import pylab
import imageio
import skimage.io
import numpy as np 
import cv2 

cap = cv2.VideoCapture('/path/to/your/video.mp4') 

while(cap.isOpened()): 
 ret, frame = cap.read() 
 cv2.imshow('image', frame) 
 k = cv2.waitKey(20) 
 #q键退出
 if (k & 0xff == ord('q')): 
 break 

cap.release() 
cv2.destroyAllWindows()

大家可能注意到,两种方法的显示方法也是不一样的,这里不详细展开,实践一下便很清楚了。

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

Python 相关文章推荐
pydev使用wxpython找不到路径的解决方法
Feb 10 Python
Python 遍历列表里面序号和值的方法(三种)
Feb 17 Python
Sublime开发python程序的示例代码
Jan 24 Python
Python入门学习指南分享
Apr 11 Python
Python中pandas dataframe删除一行或一列:drop函数详解
Jul 03 Python
python爬虫之自动登录与验证码识别
Jun 15 Python
Django中数据库的数据关系:一对一,一对多,多对多
Oct 21 Python
pytorch 使用单个GPU与多个GPU进行训练与测试的方法
Aug 19 Python
python线程中的同步问题及解决方法
Aug 29 Python
python 如何实现遗传算法
Sep 22 Python
Python pip 常用命令汇总
Oct 19 Python
Python LMDB库的使用示例
Feb 14 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
tensorflow学习笔记之mnist的卷积神经网络实例
Apr 15 #Python
You might like
php ftp文件上传函数(基础版)
2010/06/03 PHP
php地址引用(php地址引用的效率问题)
2012/03/23 PHP
PHP 杂谈《重构-改善既有代码的设计》之四 简化条件表达式
2012/04/09 PHP
apache php模块整合操作指南
2012/11/16 PHP
浅析php中常量,变量的作用域和生存周期
2013/08/10 PHP
PHP访问数据库集群的方法小结
2016/03/14 PHP
js的闭包的一个示例说明
2008/11/18 Javascript
javascript 事件绑定问题
2011/01/01 Javascript
javascript轻量级模板引擎juicer使用指南
2014/06/22 Javascript
嵌入式iframe子页面与父页面js通信的方法
2015/01/20 Javascript
JavaScript实现重置表单(reset)的方法
2015/04/02 Javascript
jQuery实现购物车表单自动结算效果实例
2015/08/10 Javascript
深入浅出ES6新特性之函数默认参数和箭头函数
2016/08/01 Javascript
JS两种类型的表单提交方法实例分析
2016/11/28 Javascript
javascript滚轮事件基础实例讲解(37)
2017/02/14 Javascript
Js利用prototype自定义数组方法示例
2017/10/20 Javascript
jQuery实现动态显示select下拉列表数据的方法
2018/02/05 jQuery
JavaScript常用截取字符串的三种方式用法区别实例解析
2018/05/15 Javascript
Vue框架TypeScript装饰器使用指南小结
2019/02/18 Javascript
python dict remove数组删除(del,pop)
2013/03/24 Python
python搜索指定目录的方法
2015/04/29 Python
通过Py2exe将自己的python程序打包成.exe/.app的方法
2018/05/26 Python
对python for 文件指定行读写操作详解
2018/12/29 Python
Python之指数与E记法的区别详解
2019/11/21 Python
解决Jupyter无法导入已安装的 module问题
2020/04/17 Python
使用Python绘制台风轨迹图的示例代码
2020/09/21 Python
python温度转换华氏温度实现代码
2020/12/06 Python
Omio英国:搜索并比较便宜的巴士、火车和飞机
2019/08/27 全球购物
关于旷工的检讨书
2014/02/02 职场文书
党员大会主持词
2014/04/02 职场文书
项目建议书范文
2014/05/12 职场文书
安全生产学习心得体会
2016/01/18 职场文书
《画家和牧童》教学反思
2016/02/17 职场文书
SpringCloud Function SpEL注入漏洞分析及环境搭建
2022/04/08 Java/Android
win11高清晰音频管理器在哪里?win11找不到高清晰音频管理器解决办法
2022/04/08 数码科技
win sever 2022如何占用操作主机角色
2022/06/25 Servers