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自动化测试之连接几组测试包实例
Sep 28 Python
Python实现的tab文件操作类分享
Nov 20 Python
Python3控制路由器——使用requests重启极路由.py
May 11 Python
浅析AST抽象语法树及Python代码实现
Jun 06 Python
Python实现PS滤镜功能之波浪特效示例
Jan 26 Python
Python在groupby分组后提取指定位置记录方法
Apr 20 Python
numpy中以文本的方式存储以及读取数据方法
Jun 04 Python
pip命令无法使用的解决方法
Jun 12 Python
python实践项目之监控当前联网状态详情
May 23 Python
python f-string式格式化听语音流程讲解
Jun 18 Python
Python MySQL 日期时间格式化作为参数的操作
Mar 02 Python
Python使用paramiko连接远程服务器执行Shell命令的实现
Mar 04 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
PHP5.2下chunk_split()函数整数溢出漏洞 分析
2007/06/06 PHP
PHP+ACCESS 文章管理程序代码
2010/06/21 PHP
PHP MySQL应用中使用XOR运算加密算法分享
2011/08/28 PHP
PHP基础教程(php入门基础教程)一些code代码
2013/01/06 PHP
解析php中用PHPMailer来发送邮件的示例(126.com的例子)
2013/06/24 PHP
C/S和B/S两种架构区别与优缺点分析
2014/10/23 PHP
php的对象传值与引用传值代码实例讲解
2021/02/26 PHP
Web 前端设计模式--Dom重构 提高显示性能
2010/10/22 Javascript
js通过地址栏给action传值(中文乱码全是问号)
2013/05/02 Javascript
javascript数组去重的方法汇总
2015/04/14 Javascript
Node.js开发者必须了解的4个JS要点
2016/02/21 Javascript
jQuery操作动态生成的内容的方法
2016/05/28 Javascript
JS中的hasOwnProperty()、propertyIsEnumerable()和isPrototypeOf()
2016/08/11 Javascript
jQuery+Ajax实现用户名重名实时检测
2017/06/01 jQuery
实例分析JS与Node.js中的事件循环
2017/12/12 Javascript
javascript变量提升和闭包理解
2018/03/12 Javascript
JavaScript实现京东放大镜效果
2019/12/03 Javascript
微信小程序登陆注册功能的实现代码
2019/12/10 Javascript
[01:12]DOTA2 2015年秋季互动指南
2015/11/10 DOTA
[01:25:33]完美世界DOTA2联赛PWL S3 INK ICE vs Magma 第二场 12.20
2020/12/23 DOTA
详解使用pymysql在python中对mysql的增删改查操作(综合)
2017/01/18 Python
python编程培训 python培训靠谱吗
2018/01/17 Python
使用OpenCV circle函数图像上画圆的示例代码
2019/12/27 Python
Django import export实现数据库导入导出方式
2020/04/03 Python
使用pytorch实现论文中的unet网络
2020/06/24 Python
Python3爬虫关于识别检验滑动验证码的实例
2020/07/30 Python
python+flask编写一个简单的登录接口
2020/11/13 Python
详解canvas绘制多张图的排列顺序问题
2019/01/21 HTML / CSS
您在慕尼黑的跑步商店:Lauf-bar
2019/10/11 全球购物
英国手工制作的现代与经典的沙发和床:Love Your Home
2020/09/26 全球购物
茱莉蔻美国官网:Jurlique美国
2020/11/24 全球购物
个人实用的自我评价范文
2013/11/23 职场文书
旅游项目开发策划书
2014/01/18 职场文书
小学教师先进事迹材料
2014/12/15 职场文书
汇报材料怎么写
2014/12/30 职场文书
部队个人年终总结
2015/03/02 职场文书