python如何实现从视频中提取每秒图片


Posted in Python onOctober 22, 2020

我是在做行人检测中需要将一段视频变为图片数据集,然后想将视频每秒钟的图片提取出来。

  • 语言:python
  • 所需要的库:cv2,numpy (自行安装)

opencv中提供了读取视频每帧图片的函数,下面的代码可以将视频的每帧图片提取出来。注:我的视频名字叫 2.mp4  ,提取图片保存目录 需要自己建一个名字叫 output 的文件夹。

# 导入所需要的库
import cv2
import numpy as np
 
# 定义保存图片函数
# image:要保存的图片名字
# addr;图片地址与相片名字的前部分
# num: 相片,名字的后缀。int 类型
def save_image(image,addr,num):
 address = addr + str(num)+ '.jpg'
 cv2.imwrite(address,image)
 
# 读取视频文件
videoCapture = cv2.VideoCapture("2.mp4")
# 通过摄像头的方式
# videoCapture=cv2.VideoCapture(1)
 
#读帧
success, frame = videoCapture.read()
i = 0
while success :
 i = i + 1
 save_image(frame,'./output/image',m)
 if success:
  print('save image:',i)
 success, frame = videoCapture.read()

现在我想按秒提取,只要我们能知道视频每秒有多少帧,然后在上面的代码基础上每隔那么多帧提取一次就行了,这就需要查看视频的帧率。一般情况下随便用一个播放器打开视频后右键查看其属性就可以看到帧率。现在我的视频帧率为12 ,每隔12帧提取一次就可以得到每秒的图片。代码如下:

# 导入所需要的库
import cv2
import numpy as np
 
# 定义保存图片函数
# image:要保存的图片名字
# addr;图片地址与相片名字的前部分
# num: 相片,名字的后缀。int 类型
def save_image(image,addr,num):
 address = addr + str(num)+ '.jpg'
 cv2.imwrite(address,image)
 
# 读取视频文件
videoCapture = cv2.VideoCapture("2.mp4")
# 通过摄像头的方式
# videoCapture=cv2.VideoCapture(1)
 
#读帧
success, frame = videoCapture.read()
i = 0
timeF = 12
j=0
while success :
 i = i + 1
 if (i % timeF == 0):
  j = j + 1
  save_image(frame,'./output/image',j)
  print('save image:',i)
 success, frame = videoCapture.read()

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

Python 相关文章推荐
tornado捕获和处理404错误的方法
Feb 26 Python
Python实现的一个简单LRU cache
Sep 26 Python
Python __setattr__、 __getattr__、 __delattr__、__call__用法示例
Mar 06 Python
python 文件操作删除某行的实例
Sep 04 Python
matplotlib subplots 设置总图的标题方法
May 25 Python
Python实现E-Mail收集插件实例教程
Feb 06 Python
详解python函数的闭包问题(内部函数与外部函数详述)
May 17 Python
Numpy的简单用法小结
Aug 28 Python
使用matlab或python将txt文件转为excel表格
Nov 01 Python
python深copy和浅copy区别对比解析
Dec 26 Python
python颜色随机生成器的实例代码
Jan 10 Python
python如何进入交互模式
Jul 06 Python
详解Django 时间与时区设置问题
Jul 23 #Python
利用python-pypcap抓取带VLAN标签的数据包方法
Jul 23 #Python
python 抓包保存为pcap文件并解析的实例
Jul 23 #Python
Django ModelForm组件使用方法详解
Jul 23 #Python
Pandas之groupby( )用法笔记小结
Jul 23 #Python
Python OpenCV调用摄像头检测人脸并截图
Aug 20 #Python
使用PYTHON解析Wireshark的PCAP文件方法
Jul 23 #Python
You might like
服务器端解压缩zip的脚本
2006/12/22 PHP
用PHP实现图象锐化代码
2007/06/14 PHP
PHP与MySQL开发的8个技巧小结
2010/12/17 PHP
SSO单点登录的PHP实现方法(Laravel框架)
2016/03/23 PHP
php7 图形用户界面GUI 开发示例
2020/02/22 PHP
JXTree对象,读取外部xml文件数据,生成树的函数
2007/04/02 Javascript
javascript 写类方式之五
2009/07/05 Javascript
javascript 日期常用的方法
2009/11/11 Javascript
JQuery从头学起第二讲
2010/07/04 Javascript
分享27个jQuery 表单插件集合推荐
2011/04/25 Javascript
js保留两位小数使用toFixed实现
2013/07/29 Javascript
Asp.Net alert弹出提示信息的几种方法总结
2014/01/29 Javascript
简介JavaScript中toUpperCase()方法的使用
2015/06/06 Javascript
JS实现的文字与图片定时切换效果代码
2015/10/06 Javascript
jquery实现图片预加载
2015/12/25 Javascript
AngularJS中如何使用$http对MongoLab数据表进行增删改查
2016/01/23 Javascript
浅谈在js传递参数中含加号(+)的处理方式
2016/10/11 Javascript
nodejs利用http模块实现银行卡所属银行查询和骚扰电话验证示例
2016/12/30 NodeJs
ZeroClipboard.js使用一个flash复制多个文本框
2017/06/19 Javascript
Node.js+Express+MySql实现用户登录注册功能
2017/07/10 Javascript
在vue2.0中引用element-ui组件库的方法
2018/06/21 Javascript
Angular5中提取公共组件之radio list的实例代码
2018/07/10 Javascript
高效测试用例组织算法pairwise之Python实现方法
2017/07/19 Python
flask-restful使用总结
2018/12/04 Python
详解Python正则表达式re模块
2019/03/19 Python
pycharm 使用tab跳出正在编辑的括号(){}{}等问题
2021/02/26 Python
应届毕业生自荐信
2014/05/28 职场文书
2014年机关作风建设工作总结
2014/10/23 职场文书
2015年元旦促销方案书
2014/12/09 职场文书
新郎答谢词
2015/01/04 职场文书
社区党支部承诺书
2015/04/29 职场文书
评奖评优个人先进事迹材料
2015/11/04 职场文书
高一作文之暖冬
2019/11/09 职场文书
如何用PHP实现分布算法之一致性哈希算法
2021/05/26 PHP
mybatis中sql语句CDATA标签的用法说明
2021/06/30 Java/Android
Python中 range | np.arange | np.linspace三者的区别
2022/03/22 Python