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 相关文章推荐
Python3.x和Python2.x的区别介绍
Feb 12 Python
python 将字符串转换成字典dict
Mar 24 Python
python模块restful使用方法实例
Dec 10 Python
在Python中使用mongoengine操作MongoDB教程
Apr 24 Python
Python 在字符串中加入变量的实例讲解
May 02 Python
Python将一个CSV文件里的数据追加到另一个CSV文件的方法
Jul 04 Python
使用pandas把某一列的字符值转换为数字的实例
Jan 29 Python
在Pytorch中使用样本权重(sample_weight)的正确方法
Aug 17 Python
python2与python3爬虫中get与post对比解析
Sep 18 Python
Django model.py表单设置默认值允许为空的操作
May 19 Python
python基本算法之实现归并排序(Merge sort)
Sep 01 Python
解决python存数据库速度太慢的问题
Apr 23 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
解决PHP在DOS命令行下却无法链接MySQL的技术笔记
2010/12/29 PHP
解析PHP函数array_flip()在重复数组元素删除中的作用
2013/06/27 PHP
php对称加密算法示例
2014/05/07 PHP
php身份证号码检查类实例
2015/06/18 PHP
详解PHP的Yii框架中自带的前端资源包的使用
2016/03/31 PHP
PHP获取不了React Native Fecth参数的解决办法
2016/08/26 PHP
PHP使用PDO、mysqli扩展实现与数据库交互操作详解
2019/07/20 PHP
php使用fputcsv实现大数据的导出操作详解
2020/02/27 PHP
js运动框架_包括图片的淡入淡出效果
2013/05/11 Javascript
21个JavaScript事件(Events)属性汇总
2014/12/02 Javascript
如何在node的express中使用socket.io
2014/12/15 Javascript
jQuery层级选择器用法分析
2015/02/10 Javascript
JavaScript函数作用域链分析
2015/02/13 Javascript
javascript特殊日历控件分享
2016/03/07 Javascript
JavaScript的Backbone.js框架入门学习指引
2016/05/07 Javascript
JS产生随机数的几个用法详解
2016/06/22 Javascript
用JS写的一个Ajax库(实例代码)
2016/08/06 Javascript
详解微信小程序开发之城市选择器 城市切换
2017/01/17 Javascript
node.js中cluster的使用教程
2017/06/09 Javascript
jquery DataTable实现前后台动态分页
2017/06/17 jQuery
ES6扩展运算符的用途实例详解
2017/08/20 Javascript
vue--点击当前增加class,其他删除class的方法
2018/09/15 Javascript
JS无限级导航菜单实现方法
2019/01/05 Javascript
vue实现菜单切换功能
2019/05/08 Javascript
Vue中通过Vue.extend动态创建实例的方法
2019/08/13 Javascript
阿望教你用vue写扫雷小游戏
2020/01/20 Javascript
[35:44]2014 DOTA2华西杯精英邀请赛 5 24 iG VS VG
2014/05/26 DOTA
[00:14]PWL:老朋友Mushi拍VLOG与中国玩家问好
2020/11/04 DOTA
django中使用Celery 布式任务队列过程详解
2019/07/29 Python
python输出结果刷新及进度条的实现操作
2020/07/13 Python
细说CSS3中的选择符
2008/10/17 HTML / CSS
家庭教育先进个人事迹材料
2014/01/24 职场文书
《社戏》教学反思
2014/04/15 职场文书
合作协议书范本
2014/04/17 职场文书
好媳妇事迹材料
2014/12/24 职场文书
幼儿园中班教师个人工作总结
2015/02/06 职场文书