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 29 Python
Python数据结构之翻转链表
Feb 25 Python
Python利用flask sqlalchemy实现分页效果
Aug 02 Python
Python设计模式之抽象工厂模式原理与用法详解
Jan 15 Python
PyTorch里面的torch.nn.Parameter()详解
Jan 03 Python
python3 xpath和requests应用详解
Mar 06 Python
django实现更改数据库某个字段以及字段段内数据
Mar 31 Python
Django用户身份验证完成示例代码
Apr 03 Python
Pycharm IDE的安装和使用教程详解
Apr 30 Python
PyQt中使用QtSql连接MySql数据库的方法
Jul 28 Python
python excel多行合并的方法
Dec 09 Python
python 批量压缩图片的脚本
Jun 02 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图形计数器程序显示网站用户浏览量
2016/07/20 PHP
centos+php+coreseek+sphinx+mysql之一coreseek安装篇
2016/10/25 PHP
thinkphp ajaxfileupload实现异步上传图片的示例
2017/08/28 PHP
PHP http请求超时问题解决方案
2020/11/13 PHP
javaScript 判断字符串是否为数字的简单方法
2009/07/25 Javascript
jquery构造器的实现代码小结
2011/05/16 Javascript
创建js对象和js类的方法汇总
2014/12/24 Javascript
jQuery手动点击实现图片轮播特效
2020/04/20 Javascript
jquery动态遍历Json对象的属性和值的方法
2016/07/27 Javascript
Vue.js学习笔记之 helloworld
2016/08/14 Javascript
ionic在开发ios系统微信时键盘挡住输入框的解决方法(键盘弹出问题)
2016/09/06 Javascript
AngularJS 中的Promise --- $q服务详解
2016/09/14 Javascript
JS中Array数组学习总结
2017/01/18 Javascript
Android中Okhttp3实现上传多张图片同时传递参数
2017/02/18 Javascript
微信小程序实现省市区三级地址选择
2020/06/21 Javascript
vue 实现v-for循环回来的数据动态绑定id
2019/11/07 Javascript
jQuery 移除事件的方法
2020/06/20 jQuery
[50:27]Secret vs VG 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
python基础教程之自定义函数介绍
2014/08/29 Python
跟老齐学Python之折腾一下目录
2014/10/24 Python
pandas删除指定行详解
2019/04/04 Python
pyqt弹出新对话框,以及关闭对话框获取数据的实例
2019/06/18 Python
python函数的万能参数传参详解
2019/07/26 Python
python3 BeautifulSoup模块使用字典的方法抓取a标签内的数据示例
2019/11/28 Python
linux环境下安装python虚拟环境及注意事项
2020/01/07 Python
python统计文章中单词出现次数实例
2020/02/27 Python
Bibloo奥地利:购买女装、男装、童装、鞋和配件
2018/10/18 全球购物
如何提高MySql的安全性
2014/06/19 面试题
大学生英语演讲稿
2014/04/24 职场文书
学生违反校规检讨书
2014/10/28 职场文书
就业推荐表导师评语
2014/12/31 职场文书
实习生辞职信范文
2015/03/02 职场文书
中学校园广播稿
2015/08/18 职场文书
人民调解协议书
2016/03/21 职场文书
Python使用mitmproxy工具监控手机 下载手机小视频
2022/04/18 Python
JS实现简单的九宫格抽奖
2022/06/28 Javascript