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中异常(Exception)的汇总
Jan 18 Python
Django中ORM表的创建和增删改查方法示例
Nov 15 Python
python3 selenium 切换窗口的几种方法小结
May 21 Python
在ubuntu16.04中将python3设置为默认的命令写法
Oct 31 Python
详解Python数据可视化编程 - 词云生成并保存(jieba+WordCloud)
Mar 26 Python
selenium+python环境配置教程详解
May 28 Python
如何用Python做一个微信机器人自动拉群
Jul 03 Python
图文详解Django使用Pycharm连接MySQL数据库
Aug 09 Python
Django接收自定义http header过程详解
Aug 23 Python
Django自带的加密算法及加密模块详解
Dec 03 Python
Python处理mysql特殊字符的问题
Mar 02 Python
在python中实现导入一个需要传参的模块
May 12 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中使用exec,system等函数调用系统命令的方法(不建议使用,可导致安全问题)
2012/09/07 PHP
php简单开启gzip压缩方法(zlib.output_compression)
2013/04/13 PHP
php用正则表达式匹配URL的简单方法
2013/11/12 PHP
php防止伪造数据从地址栏URL提交的方法
2014/08/24 PHP
详解phpstorm2020最新破解方法
2020/09/17 PHP
EXTJS内使用ACTIVEX控件引起崩溃问题的解决方法
2010/03/31 Javascript
最流行的Node.js精简型和全栈型开发框架介绍
2015/02/26 Javascript
input点击后placeholder中的提示消息消失
2016/01/15 Javascript
JS弹性运动实现方法分析
2016/12/15 Javascript
zTree节点文字过多的处理方法
2017/11/24 Javascript
详解使用create-react-app快速构建React开发环境
2018/05/16 Javascript
JS插件clipboard.js实现一键复制粘贴功能
2020/12/04 Javascript
vee-validate vue 2.0自定义表单验证的实例
2018/08/28 Javascript
layDate日期控件使用方法详解
2018/11/15 Javascript
详解keep-alive + vuex 让缓存的页面灵活起来
2019/04/19 Javascript
Vue 组件的挂载与父子组件的传值实例
2020/09/02 Javascript
Electron+vue从零开始打造一个本地播放器的方法示例
2020/10/27 Javascript
[01:15:12]DOTA2上海特级锦标赛主赛事日 - 1 败者组第一轮#4Newbee VS CDEC
2016/03/03 DOTA
Python开发常用的一些开源Package分享
2015/02/14 Python
Python实现线程池代码分享
2015/06/21 Python
python+Django+apache的配置方法详解
2016/06/01 Python
基于MTCNN/TensorFlow实现人脸检测
2018/05/24 Python
python中从str中提取元素到list以及将list转换为str的方法
2018/06/26 Python
Python和Java的语法对比分析语法简洁上python的确完美胜出
2019/05/10 Python
python爬虫模块URL管理器模块用法解析
2020/02/03 Python
北美个性化礼品商店:Things Remembered
2018/06/12 全球购物
Abbott Lyon官网:女士手表、珠宝及配件
2020/12/26 全球购物
法学个人求职信范文
2014/01/27 职场文书
《放小鸟》教学反思
2014/04/20 职场文书
小学班主任评语大全
2014/04/23 职场文书
竞选大队长演讲稿
2014/04/29 职场文书
支部鉴定材料
2014/06/02 职场文书
施工单位工程部经理岗位职责
2015/04/09 职场文书
萤火虫之墓观后感
2015/06/05 职场文书
道士塔读书笔记
2015/06/30 职场文书
Html5同时支持多端sdk的小技巧
2021/11/17 HTML / CSS