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使用email模块对邮件进行编码和解码的实例教程
Jul 01 Python
深入了解Python中pop和remove的使用方法
Jan 09 Python
Python查找文件中包含中文的行方法
Dec 19 Python
Python实现的在特定目录下导入模块功能分析
Feb 11 Python
python web框架Flask实现图形验证码及验证码的动态刷新实例
Oct 14 Python
Python控制台输出时刷新当前行内容而不是输出新行的实现
Feb 21 Python
Python Django中的STATIC_URL 设置和使用方式
Mar 27 Python
Python并发concurrent.futures和asyncio实例
May 04 Python
Python3基于print打印带颜色字符串
Jul 06 Python
TensorFlow Autodiff自动微分详解
Jul 06 Python
Python自动化操作实现图例绘制
Jul 09 Python
python函数超时自动退出的实操方法
Dec 28 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
最省空间的计数器
2006/10/09 PHP
PHP类的使用 实例代码讲解
2009/12/28 PHP
php网站判断用户是否是手机访问的方法
2013/11/01 PHP
浅析php静态方法与非静态方法的用法区别
2016/05/17 PHP
php获取文章内容第一张图片的方法示例
2017/07/03 PHP
在Javascript里访问SharePoint列表数据的实现方法
2011/05/22 Javascript
js对图片base64编码字符串进行解码并输出图像示例
2014/03/17 Javascript
使用phantomjs进行网页抓取的实现代码
2014/09/29 Javascript
浅谈Javascript中匀速运动的停止条件
2014/12/19 Javascript
html的DOM中document对象images集合用法实例
2015/01/21 Javascript
浅析jQuery Mobile的初始化事件
2015/12/03 Javascript
js验证框架之RealyEasy验证详解
2016/06/08 Javascript
JQuery DIV 动态隐藏和显示的方法
2016/06/23 Javascript
零基础轻松学JavaScript闭包
2016/12/30 Javascript
详解JS数组Reduce()方法详解及高级技巧
2017/08/18 Javascript
jQuery 实现倒计时天,时,分,秒功能
2018/07/31 jQuery
JS常用跨域方法实现原理解析
2020/12/09 Javascript
[53:10]2018DOTA2亚洲邀请赛 4.6 淘汰赛 VP vs VG 第一场
2018/04/11 DOTA
[44:33]EG vs Liquid 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
github配置使用指南
2014/11/18 Python
python处理按钮消息的实例详解
2017/07/11 Python
Python  unittest单元测试框架的使用
2018/09/08 Python
解决pycharm不能自动补全第三方库的函数和属性问题
2020/03/12 Python
在 Pycharm 安装使用black的方法详解
2020/04/02 Python
keras的三种模型实现与区别说明
2020/07/03 Python
Python中qutip用法示例详解
2020/10/02 Python
Python 制作查询商品历史价格的小工具
2020/10/20 Python
如何使用Pytorch搭建模型
2020/10/26 Python
英国鞋网:Rubber Sole
2020/03/03 全球购物
全球精选男装和家居用品:Article
2020/04/13 全球购物
先进德育工作者事迹材料
2014/01/24 职场文书
总经理任命书范本
2014/06/05 职场文书
个人先进事迹总结
2015/02/26 职场文书
工厂采购员岗位职责
2015/04/07 职场文书
事业单位财务人员岗位职责
2015/04/14 职场文书
Python如何用re模块实现简易tokenizer
2022/05/02 Python