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导出Excel图表以及导出为图片的方法
Nov 07 Python
Python实现二叉堆
Feb 03 Python
详解Python中类的定义与使用
Apr 11 Python
浅谈Python实现2种文件复制的方法
Jan 19 Python
python之matplotlib学习绘制动态更新图实例代码
Jan 23 Python
详解pyenv下使用python matplotlib模块的问题解决
Nov 29 Python
Python的互斥锁与信号量详解
Sep 12 Python
tensorflow 实现自定义梯度反向传播代码
Feb 10 Python
Python json模块与jsonpath模块区别详解
Mar 05 Python
python实现图片九宫格分割的示例
Apr 25 Python
python中os.path.join()函数实例用法
May 26 Python
Python实现滑雪小游戏
Sep 25 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 网页过期时间的控制代码
2009/06/29 PHP
用PHP提取中英文词语以及数字的首字母的方法介绍
2013/04/23 PHP
php链表用法实例分析
2015/07/09 PHP
PHP 结合 Boostrap 结合 js 实现学生列表删除编辑及搜索功能
2019/05/21 PHP
php7 图形用户界面GUI 开发示例
2020/02/22 PHP
php设计模式之策略模式实例分析【星际争霸游戏案例】
2020/03/26 PHP
jQuery Pagination Ajax分页插件(分页切换时无刷新与延迟)中文翻译版
2013/01/11 Javascript
JS实现漂亮的淡蓝色滑动门效果代码
2015/09/23 Javascript
使用Math.max,Math.min获取数组中的最值实例
2017/04/25 Javascript
给Easyui-Datebox设置隐藏或者不可用的解决方法
2017/05/26 Javascript
vue事件修饰符和按键修饰符用法总结
2017/07/25 Javascript
vuejs实现ready函数加载完之后执行某个函数的方法
2018/08/31 Javascript
layui框架与SSM前后台交互的方法
2019/09/12 Javascript
JavaScript算法学习之冒泡排序和选择排序
2019/11/02 Javascript
vue element el-transfer增加拖拽功能
2021/01/15 Vue.js
linux系统使用python获取内存使用信息脚本分享
2014/01/15 Python
Python使用MD5加密字符串示例
2014/08/22 Python
详细介绍Ruby中的正则表达式
2015/04/10 Python
利用python解决mysql视图导入导出依赖的问题
2017/12/17 Python
Django自定义过滤器定义与用法示例
2018/03/22 Python
python3下使用cv2.imwrite存储带有中文路径图片的方法
2018/05/10 Python
对sklearn的使用之数据集的拆分与训练详解(python3.6)
2018/12/14 Python
python实现最大子序和(分治+动态规划)
2019/07/05 Python
Python使用tkinter模块实现推箱子游戏
2019/10/08 Python
执行Python程序时模块报错问题
2020/03/26 Python
django表单中的按钮获取数据的实例分析
2020/07/31 Python
Python中logger日志模块详解
2020/08/04 Python
Jacadi Paris美国官方网站:法国童装品牌
2017/10/15 全球购物
美国波西米亚风格服装品牌:Show Me Your Mumu
2018/01/05 全球购物
Vinatis德国:法国领先的葡萄酒邮购公司
2020/09/07 全球购物
劳资人员岗位职责
2013/12/19 职场文书
销售辞职报告范文
2014/01/12 职场文书
我爱我校演讲稿
2014/05/21 职场文书
2014群众路线学习笔记
2014/11/06 职场文书
领导欢迎词范文
2015/01/26 职场文书
详解redis在微服务领域的贡献
2021/10/16 Redis