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 01 Python
python显示生日是星期几的方法
May 27 Python
django 开发忘记密码通过邮箱找回功能示例
Apr 17 Python
python使用Paramiko模块实现远程文件拷贝
Apr 30 Python
python3.6生成器yield用法实例分析
Aug 23 Python
python 列表推导式使用详解
Aug 29 Python
解决django-xadmin列表页filter关联对象搜索问题
Nov 15 Python
简单了解Pandas缺失值处理方法
Nov 16 Python
Python如何用wx模块创建文本编辑器
Jun 07 Python
Python fileinput模块如何逐行读取多个文件
Oct 05 Python
Python的scikit-image模块实例讲解
Dec 30 Python
Python-OpenCV实现图像缺陷检测的实例
Jun 11 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
yii框架中的Url生产问题小结
2012/01/16 PHP
destoon供应信息title调用出公司名称的方法
2014/08/22 PHP
php实现编辑和保存文件的方法
2015/07/20 PHP
javascript调试之DOM断点调试法使用技巧分享
2014/04/15 Javascript
Node.js事件循环(Event Loop)和线程池详解
2015/01/28 Javascript
jQuery实现下滑菜单导航效果代码
2015/08/25 Javascript
JavaScript html5 canvas画布中删除一个块区域的方法
2016/01/26 Javascript
对jQuary选择器的全面总结
2016/06/20 Javascript
SelecT下拉框选中和取值的解决方法
2016/11/22 Javascript
BootStrap Table 获取同行不同列元素的方法
2016/12/19 Javascript
JS模拟实现ECMAScript5新增的数组方法
2017/03/20 Javascript
js省市区级联查询(插件版&无插件版)
2017/03/21 Javascript
详解Angular2响应式表单
2017/06/14 Javascript
jQuery实现checkbox的简单操作
2017/11/18 jQuery
Vue export import 导入导出的多种方式与区别介绍
2020/02/12 Javascript
[02:22]2018DOTA2亚洲邀请赛VG赛前采访
2018/04/03 DOTA
Python中最常用的操作列表的几种方法归纳
2015/04/24 Python
python语言使用技巧分享
2016/05/31 Python
Python的Flask框架应用程序实现使用QQ账号登录的方法
2016/06/07 Python
Python读写Json涉及到中文的处理方法
2016/09/12 Python
opencv3/Python 稠密光流calcOpticalFlowFarneback详解
2019/12/11 Python
Django集成celery发送异步邮件实例
2019/12/17 Python
pandas apply多线程实现代码
2020/08/17 Python
Python 下载Bing壁纸的示例
2020/09/29 Python
浅谈Html5多线程开发之WebWorkers
2018/05/02 HTML / CSS
查找廉价航班和发现新目的地:Kiwi.com
2019/02/25 全球购物
巴西手表购物网站:eclock
2019/03/19 全球购物
施华洛世奇巴西官网:SWAROVSKI巴西
2019/12/03 全球购物
2015年行风建设工作总结
2015/05/15 职场文书
革命电影观后感
2015/06/18 职场文书
2016年教师政治思想表现评语
2015/12/02 职场文书
中国梦宣传标语口号
2015/12/26 职场文书
创业计划书之情侣餐厅
2019/09/29 职场文书
python 中的@运算符使用
2021/05/26 Python
MySQL系列之十一 日志记录
2021/07/02 MySQL
SpringBoot Http远程调用的方法
2022/08/14 Java/Android