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中使用dom模块生成XML文件示例
Apr 05 Python
Python判断文本中消息重复次数的方法
Apr 27 Python
Python虚拟环境virtualenv的安装与使用详解
May 28 Python
Python列表推导式与生成器用法分析
Aug 02 Python
详解Python with/as使用说明
Dec 13 Python
一文秒懂python读写csv xml json文件各种骚操作
Jul 04 Python
python爬虫 urllib模块反爬虫机制UA详解
Aug 20 Python
Python使用matplotlib实现交换式图形显示功能示例
Sep 06 Python
Django ORM实现按天获取数据去重求和例子
May 18 Python
Python使用Selenium模拟浏览器自动操作功能
Sep 08 Python
Django-simple-captcha验证码包使用方法详解
Nov 28 Python
人工智能深度学习OpenAI baselines的使用方法
May 20 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 Smarty模板生成html文档的方法
2010/04/12 PHP
destoon实现资讯信息前面调用它所属分类的方法
2014/07/15 PHP
php操作xml入门之xml标签的属性分析
2015/01/23 PHP
浅谈关于PHP解决图片无损压缩的问题
2017/09/01 PHP
laravel框架上传图片实现实时预览功能
2019/10/14 PHP
Jquery 插件学习实例1 插件制作说明与tableUI优化
2010/04/02 Javascript
JavaScript自动设置IFrame高度的小例子
2013/06/08 Javascript
浅析XMLHttpRequest的缓存问题
2013/12/13 Javascript
jQuery遍历之next()、nextAll()方法使用实例
2014/11/08 Javascript
html+js+highcharts绘制圆饼图表的简单实例
2016/08/04 Javascript
JavaScript使用简单正则表达式的数据验证功能示例
2017/01/13 Javascript
详解vue-cli + webpack 多页面实例应用
2017/04/25 Javascript
详解vue-cli快速构建项目以及引入bootstrap、jq
2017/05/26 Javascript
JavaScrip如果基于url实现图片下载
2020/07/03 Javascript
Vue优化:常见会导致内存泄漏问题及优化详解
2020/08/04 Javascript
vue设置全局访问接口API地址操作
2020/08/14 Javascript
python3.3使用tkinter开发猜数字游戏示例
2014/03/14 Python
python将ansible配置转为json格式实例代码
2017/05/15 Python
Python中执行存储过程及获取存储过程返回值的方法
2017/10/07 Python
Python实现读取Properties配置文件的方法
2018/03/29 Python
Python序列对象与String类型内置方法详解
2019/10/22 Python
使用python绘制cdf的多种实现方法
2020/02/25 Python
Python反爬虫伪装浏览器进行爬虫
2020/02/28 Python
装上这 14 个插件后,PyCharm 真的是无敌的存在
2021/01/11 Python
HTML5 CSS3给网站设计带来出色效果
2009/07/16 HTML / CSS
canvas环形倒计时组件的示例代码
2018/06/14 HTML / CSS
找到您丢失的钥匙、钱包和手机:Tile
2017/05/19 全球购物
Unix控制后台进程都有哪些进程
2016/09/22 面试题
大学生家政服务项目创业计划书
2014/01/30 职场文书
优秀社区干部事迹材料
2014/02/03 职场文书
冬季施工防火方案
2014/05/17 职场文书
2015年新农村建设指导员工作总结
2015/07/24 职场文书
新教师教学工作总结
2015/08/14 职场文书
《半截蜡烛》教学反思
2016/02/19 职场文书
Ajax实现局部刷新的方法实例
2021/03/31 Javascript
Python包argparse模块常用方法
2021/06/04 Python