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 相关文章推荐
python网络编程示例(客户端与服务端)
Apr 24 Python
Python实现类似jQuery使用中的链式调用的示例
Jun 16 Python
Python3操作SQL Server数据库(实例讲解)
Oct 21 Python
详解Python自建logging模块
Jan 29 Python
解决python3爬虫无法显示中文的问题
Apr 12 Python
python实现自主查询实时天气
Jun 22 Python
python 实现查找文件并输出满足某一条件的数据项方法
Jun 12 Python
PyQt5的安装配置过程,将ui文件转为py文件后显示窗口的实例
Jun 19 Python
解决python文件双击运行秒退的问题
Jun 24 Python
Python OpenCV 使用滑动条来调整函数参数的方法
Jul 08 Python
python实现文法左递归的消除方法
May 22 Python
python 通过 pybind11 使用Eigen加速代码的步骤
Dec 07 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
syphon 虹吸式咖啡冲泡冲煮倒水的得与失
2021/03/03 冲泡冲煮
php中3种方法删除字符串中间的空格
2014/03/10 PHP
PHP生成静态HTML文档实现代码
2016/06/23 PHP
Thinkphp5框架中引入Markdown编辑器操作示例
2020/06/03 PHP
JavaScript 实现模态对话框 源代码大全
2009/05/02 Javascript
基于jquery的复制网页内容到WORD的实现代码
2011/02/16 Javascript
基于jQuery实现的扇形定时器附源码下载
2015/10/20 Javascript
JavaScript 中 avalon绑定属性总结
2016/10/19 Javascript
使用BootStrap实现悬浮窗口的效果
2016/12/13 Javascript
Nodejs+Socket.io实现通讯实例代码
2017/02/13 NodeJs
Canvas 绘制粒子动画背景
2017/02/15 Javascript
通过命令行生成vue项目框架的方法
2017/07/12 Javascript
深入理解vue.js中$watch的oldvalue与newValue
2017/08/07 Javascript
微信小程序BindTap快速连续点击目标页面跳转多次问题处理
2019/04/08 Javascript
解决vue+ element ui 表单验证有值但验证失败问题
2020/01/16 Javascript
解决echarts vue数据更新,视图不更新问题(echarts嵌在vue弹框中)
2020/07/20 Javascript
vant中的toast轻提示实现代码
2020/11/04 Javascript
详解node.js创建一个web服务器(Server)的详细步骤
2021/01/15 Javascript
[07:48]DOTA2上海特级锦标赛主赛事首日RECAP
2016/03/04 DOTA
[00:32]2018DOTA2亚洲邀请赛出场——VP
2018/04/04 DOTA
利用Python的Flask框架来构建一个简单的数字商品支付解决方案
2015/03/31 Python
使用Python脚本来获取Cisco设备信息的示例
2015/05/04 Python
使用Python神器对付12306变态验证码
2016/01/05 Python
Python实现统计文本文件字数的方法
2017/05/05 Python
对python 自定义协议的方法详解
2019/02/13 Python
python实现小世界网络生成
2019/11/21 Python
CSS3中动画属性transform、transition和animation属性的区别
2016/09/25 HTML / CSS
详解H5 活动页之移动端 REM 布局适配方法
2017/12/07 HTML / CSS
英智兴达软件测试笔试题
2016/10/12 面试题
中学门卫岗位职责
2013/12/26 职场文书
公司保密承诺书
2014/03/27 职场文书
真诚的求职信
2014/07/04 职场文书
银行党的群众路线教育实践活动对照检查材料
2014/09/25 职场文书
群众路线查摆问题整改措施思想汇报
2014/10/10 职场文书
离婚协议书范文
2015/01/26 职场文书
趣味运动会口号
2015/12/24 职场文书