Python读取视频的两种方法(imageio和cv2)
用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读取和保存视频文件
- python读取视频流提取视频帧的两种方法
相关推荐
-
python读取视频流提取视频帧的两种方法
本文实例为大家分享了python读取视频流提取视频帧的具体代码,供大家参考,具体内容如下 方法一:通过imageio库和skimage库 1. 安装环境: pip install imageio pip install skimage 这时候会报错Please install the `scikit-image` package (instead of `skimage`) 所以按照提示操作即可: pip install scikit-image 环境安装成功. 2.通过python安装ffmp
-
python读取和保存视频文件
为了获取视频,应该创建一个 VideoCapture 对象.他的参数可以是设备的索引号,或者是一个视频文件.设备索引号就是在指定要使用的摄像头. 一般的笔记本电脑都有内置摄像头.所以参数就是 0.你可以通过设置成 1 或者其他的来选择别的摄像头.之后,你就可以一帧一帧的捕获视频了.但是最后,别忘了停止捕获视频. import numpy as np import cv2 cap=cv2.VideoCapture(0) while (True): ret,frame=cap.read() gray
-
Python读取视频的两种方法(imageio和cv2)
用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的类型是ma
-
Python读取视频的两种方法(imageio和cv2)
用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的类型是ma
-
python读取和保存图片5种方法对比
python读取和保存图片5种方法对比 python中对象之间的赋值是按引用传递的,如果需要拷贝对象,需要用到标准库中的copy模块 方法一:利用 PIL 中的 Image 函数 这个函数读取出来不是 array 格式,这时候需要用 np.asarray(im) 或者 np.array()函数 . 区别:np.array() 是深拷贝,np.asarray() 是浅拷贝 copy.copy 浅拷贝 只拷贝父对象,不会拷贝对象的内部的子对象. copy.deepcopy 深拷贝 拷贝对象及其子对象
-
Java读取Map的两种方法与对比
前言 在java中遍历Map有不少的方法.这篇文章我们就来看一下Java读取Map的两种方法以及这两种方法的对比. 一. 遍历Map方法A Map map = new HashMap(); Iterator iter = map.entrySet().iterator(); while (iter.hasNext()) { Map.Entry entry = (Map.Entry) iter.next(); Object key = entry.getKey(); Object val = en
-
Python更新数据库脚本两种方法及对比介绍
最近项目的两次版本迭代中,根据业务需求的变化,需要对数据库进行更新,两次分别使用了不同的方式进行更新. 第一种:使用python的MySQLdb模块利用原生的sql语句进行更新 import MySQLdb #主机名 HOST = '127.0.0.1' #用户名 USER = "root" #密码 PASSWD = "123456" #数据库名 DB = "db_name" # 打开数据库连接 db=MySQLdb.connect(HOST,U
-
python安装gdal的两种方法
1.不用手动下载文件,直接执行以下命令即可 conda install gdal 2.首先,下载gdal的whl文件 链接, 官网下载比较慢,GDAL-2.2.4-cp27-cp27m-win_amd64.whl 链接: https://pan.baidu.com/s/1prPHLJKwoKK505i5qTVZ7g 提取码: egj6 有百度云可以下载,然后放入本机目录. 这里目录有两种,一是放入anaconda安装目录的Scripts目录,我的是D:\anaconda\Scripts目录:二
-
总结python实现父类调用两种方法的不同
python中有两种方法可以调用父类的方法: super(Child, self).method(args) Parent.method(self, args) 我用其中的一种报了如下错误: 找不到 classobj.当我把调用改为 super(B, self).f(name) 就能正确运行,且结果正确. 分析错误 因为基类没有继承 object , 在python中,一个可以这样创建: class A: pass 也可以这样创建: class A(object): pass 这两者的区别就是:
-
php fseek函数读取大文件两种方法
php读取大文件,使用fseek函数是最为普遍的方式,它不需要将文件的内容全部读入内存,而是直接通过指针来操作,所以效率是相当高效的.在使用fseek来对文件进行操作时,也有多种不同的方法,效率可能也是略有差别的,下面是常用的两种方法. 方法一: 首先通过fseek找到文件的最后一位EOF,然后找最后一行的起始位置,取这一行的数据,再找次一行的起始位置,再取这一行的位置,依次类推,直到找到了$num行.实现代码如下: 整个代码执行完成耗时 0.0095 (s) function tail($fp
-
python list排序的两种方法及实例讲解
对List进行排序,Python提供了两个方法 方法1.用List的内建函数list.sort进行排序 list.sort(func=None, key=None, reverse=False) Python实例: >>> list = [2,5,8,9,3] >>> list [2,5,8,9,3] >>> list.sort() >>> list [2, 3, 5, 8, 9] 方法2.用序列类型函数sorted(list)进行排
-
Python词频统计的两种方法详解
目录 统计文件里每个单词的个数 思路: 想法成立开始实践 方法一: 方法二: 总结 统计文件里每个单词的个数 思路: 分别统计文档中的单词,与出现的次数 用两个列表将其保存起来,最后再用zip()函数连接输出** 想法成立开始实践 方法一: # 导入文件 with open("passage.txt", 'r') as file: dates = file.readlines() # 处理 words = [] for i in dates: words += i.replace(&q
随机推荐
- Lesson02_02 帧标签
- CentOS 7.2.1511 编译安装Nginx1.10.1+MySQL5.7.14+PHP7.0.11
- java面试常见问题之Hibernate总结
- 跟老齐学Python之重回函数
- JavaScript中的工厂函数(推荐)
- SignalR Self Host+MVC等多端消息推送服务(一)
- asp自带的内存缓存 application
- WinForm实现按名称递归查找控件的方法
- js实现防止被iframe的方法
- Linux系统下Mysql使用简单教程(一)
- jQuery(js)获取文字宽度(显示长度)示例代码
- 关于脚本操作文本域的问题
- Node.js开发指南中的简单实例(mysql版)
- android自由改变Dialog窗口位置的方法
- 用HOSTS文件屏蔽网站 建立网站映射的方法
- Mybatis choose when用法实例代码
- Android Studio使用教程(四):Gradle基础
- 小程序中英文混合排序问题解决
- Vue 自定义指令实现一键 Copy功能
- Anaconda下配置python+opencv+contribx的实例讲解