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 相关文章推荐
easy_install python包安装管理工具介绍
Feb 10 Python
Python实现计算文件夹下.h和.cpp文件的总行数
Apr 23 Python
python实现class对象转换成json/字典的方法
Mar 11 Python
浅谈Scrapy框架普通反爬虫机制的应对策略
Dec 28 Python
linecache模块加载和缓存文件内容详解
Jan 11 Python
python的mysql数据库建立表与插入数据操作示例
Sep 30 Python
Python实现字符串中某个字母的替代功能
Oct 21 Python
python实现图片插入文字
Nov 26 Python
Python线程threading模块用法详解
Feb 26 Python
如何在sublime编辑器中安装python
May 20 Python
Python基础之元类详解
Apr 29 Python
Python 数据可视化工具 Pyecharts 安装及应用
Apr 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
基于ubuntu下nginx+php+mysql安装配置的具体操作步骤
2013/04/28 PHP
php绘制圆形的方法
2015/01/24 PHP
php自定义类fsocket模拟post或get请求的方法
2015/07/31 PHP
php+jQuery+Ajax实现点赞效果的方法(附源码下载)
2020/07/21 PHP
PHP中substr_count()函数获取子字符串出现次数的方法
2016/01/07 PHP
JavaScript 模仿vbs中的 DateAdd() 函数的代码
2007/08/13 Javascript
二级域名或跨域共享Cookies的实现方法
2008/08/07 Javascript
JavaScript 设计模式之组合模式解析
2010/04/09 Javascript
javascript跨域刷新实现代码
2011/01/01 Javascript
JavaScript中的闭包(Closure)详细介绍
2014/12/30 Javascript
JS实现定时自动关闭DIV层提示框的方法
2015/05/11 Javascript
javascript自定义右键弹出菜单实现方法
2015/05/25 Javascript
教你用javascript实现随机标签云效果_附代码
2016/03/16 Javascript
JavaScript提高网站性能优化的建议(二)
2016/07/24 Javascript
PHP获取当前页面完整URL的方法
2016/12/02 Javascript
Vuejs 页面的区域化与组件封装的实现
2017/09/11 Javascript
详解微信小程序缓存--缓存时效性
2019/05/02 Javascript
vue仿淘宝滑动验证码功能(样式模仿)
2019/12/10 Javascript
解决idea开发遇到javascript动态添加html元素时中文乱码的问题
2020/09/29 Javascript
Python实现的下载8000首儿歌的代码分享
2014/11/21 Python
python实现的MySQL增删改查操作实例小结
2018/12/19 Python
对Python捕获控制台输出流的方法详解
2019/01/07 Python
Python中字符串List按照长度排序
2019/07/01 Python
Python pandas自定义函数的使用方法示例
2019/11/20 Python
Python爬虫入门教程01之爬取豆瓣Top电影
2021/01/24 Python
Django和Ueditor自定义存储上传文件的文件名
2021/02/25 Python
澳洲最大的时尚奢侈品电商平台:Cettire
2020/06/15 全球购物
物理系毕业生自荐信
2013/11/01 职场文书
网络维护中文求职信
2014/01/03 职场文书
通信研究生自荐信
2014/02/01 职场文书
班主任新年寄语
2014/04/04 职场文书
教师三严三实学习心得体会
2014/10/11 职场文书
2014年计生协会工作总结
2014/11/21 职场文书
员工自我工作评价
2015/03/06 职场文书
护士求职简历自我评价
2015/03/10 职场文书
2015年度员工自我评价范文
2015/03/11 职场文书