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 urlopen()函数 示例分享
Jun 12 Python
python实现unicode转中文及转换默认编码的方法
Apr 29 Python
python实现发送邮件及附件功能
Mar 02 Python
解决python3在anaconda下安装caffe失败的问题
Jun 15 Python
Python栈算法的实现与简单应用示例
Nov 01 Python
Python 中的Selenium异常处理实例代码
May 03 Python
Python批量删除只保留最近几天table的代码实例
Apr 01 Python
Python实现合并excel表格的方法分析
Apr 13 Python
Python实现图片添加文字
Nov 26 Python
PyCharm第一次安装及使用教程
Jan 08 Python
Python+OpenCV图像处理——实现轮廓发现
Oct 23 Python
python如何利用paramiko执行服务器命令
Nov 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
一步一步学习PHP(1) php开发环境配置
2010/02/15 PHP
php导出csv格式数据并将数字转换成文本的思路以及代码分享
2014/06/05 PHP
浅析PHP数据导出知识点
2018/02/17 PHP
基于laravel缓冲cache的用法详解
2019/10/23 PHP
PHP连续签到功能实现方法详解
2019/12/04 PHP
JavaScript prototype对象的属性说明
2010/03/13 Javascript
让textarea自动调整大小的js代码
2011/04/12 Javascript
JS添加删除一组文本框并对输入信息加以验证判断其正确性
2013/04/11 Javascript
jquery动态增加text元素以及删除文本内容实例代码
2013/07/01 Javascript
JQuery对表单元素的基本操作使用总结
2014/07/18 Javascript
jQuery使用fadeout实现元素渐隐效果的方法
2015/03/27 Javascript
JavaScript操作select元素和option的实例代码
2016/01/29 Javascript
原生js三级联动的简单实现代码
2016/06/07 Javascript
JavaScript微信定位功能实现方法
2016/11/29 Javascript
文件上传插件SWFUpload的使用指南
2016/11/29 Javascript
实例解析js中try、catch、finally的执行规则
2017/02/24 Javascript
JSON在Javascript中的使用(eval和JSON.parse的区别)详细解析
2017/09/05 Javascript
Angular6封装http请求的步骤详解
2018/08/13 Javascript
vue操作下拉选择器获取选择的数据的id方法
2018/08/24 Javascript
Makefile/cmake/node-gyp中区分判断不同平台的方法
2018/12/18 Javascript
基于elementUI使用v-model实现经纬度输入的vue组件
2019/05/12 Javascript
js实现带箭头的进度流程
2020/03/26 Javascript
详解vue中v-on事件监听指令的基本用法
2020/07/22 Javascript
基于JS实现操作成功之后自动跳转页面
2020/09/25 Javascript
[03:18]【TI9纪实】社区大触GL与木木
2019/08/25 DOTA
python控制台英汉汉英电子词典
2020/04/23 Python
高性能web服务器框架Tornado简单实现restful接口及开发实例
2014/07/16 Python
Python获取任意xml节点值的方法
2015/05/05 Python
举例讲解Python的lambda语句声明匿名函数的用法
2016/07/01 Python
Python3用tkinter和PIL实现看图工具
2018/06/21 Python
彼得罗夫美国官网:Peter Thomas Roth美国(青瓜面膜)
2017/11/05 全球购物
描述Cookie和Session的作用,区别和各自的应用范围,Session工作原理
2015/03/25 面试题
冬季安全检查方案
2014/05/23 职场文书
教师个人师德总结
2015/02/06 职场文书
导游词之苏州盘门景区
2019/11/12 职场文书
Java中的Kafka为什么性能这么快及4大核心详析
2022/09/23 Java/Android