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

yipeiwu_com6年前Python基础

用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计算两个地址之间的距离方法

我们调用高德地图的API来计算经纬度 #计算地址经纬度 import requests def geocode(address): parameters = {'address':...

Python3连接MySQL(pymysql)模拟转账实现代码

本文实例为大家分享了Python3连接MySQL模拟转账的具体实现代码,供大家参考,具体内容如下 # coding:utf8 import sys import pymysql...

Python中用format函数格式化字符串的用法

自python2.6开始,新增了一种格式化字符串的函数str.format(),可谓威力十足。那么,他跟之前的%型格式化字符串相比,有什么优越的存在呢?让我们来揭开它羞答答的面纱。 语法...

Python数据类型之List列表实例详解

本文实例讲述了Python数据类型之List列表。分享给大家供大家参考,具体如下: list列表 1.概述: 通过之前的学习,我们知道变量可以存储数据,但是一个变量只能存储一个数据,现...