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奇技淫巧13招【实用】
Dec 14 Python
python用模块zlib压缩与解压字符串和文件的方法
Dec 16 Python
python通过opencv实现批量剪切图片
Nov 13 Python
python模块smtplib实现纯文本邮件发送功能
May 22 Python
PyCharm+PySpark远程调试的环境配置的方法
Nov 29 Python
python中seaborn包常用图形使用详解
Nov 25 Python
TensorFlow命名空间和TensorBoard图节点实例
Jan 23 Python
彻底搞懂 python 中文乱码问题(深入分析)
Feb 28 Python
Python matplotlib绘制图形实例(包括点,曲线,注释和箭头)
Apr 17 Python
Python爬虫实现vip电影下载的示例代码
Apr 20 Python
Django利用AJAX技术实现博文实时搜索
May 06 Python
Python中requests库的用法详解
Jun 05 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 str_pad 函数使用详解
2009/01/13 PHP
PHP依赖倒置(Dependency Injection)代码实例
2014/10/11 PHP
PHP创建PowerPoint2007文档的方法
2015/12/10 PHP
Thinkphp 框架扩展之驱动扩展实例分析
2020/04/27 PHP
如何在标题栏显示框架内页面的标题
2007/02/03 Javascript
jQuery Ajax方法调用 Asp.Net WebService 的详细实例代码
2011/04/27 Javascript
jQuery中json对象的复制方式介绍(数组及对象)
2013/06/08 Javascript
解决js数据包含加号+通过ajax传到后台时出现连接错误
2013/08/01 Javascript
js中window.open()的所有参数详细解析
2014/01/09 Javascript
nodejs教程之环境安装及运行
2014/11/21 NodeJs
javascript中call和apply的用法示例分析
2015/04/02 Javascript
基于jQuery实现简单的折叠菜单效果
2015/11/23 Javascript
浅谈node中的cluster集群
2018/06/02 Javascript
Cocos2d实现刮刮卡效果
2018/12/20 Javascript
js实现随机点名器精简版
2020/06/29 Javascript
VUE项目axios请求头更改Content-Type操作
2020/07/24 Javascript
详解python之多进程和进程池(Processing库)
2017/06/09 Python
Python实现识别手写数字大纲
2018/01/29 Python
selenium+python实现1688网站验证码图片的截取功能
2018/08/14 Python
用python实现k近邻算法的示例代码
2018/09/06 Python
django 多对多表的创建和插入代码实现
2019/09/09 Python
Django使用Celery加redis执行异步任务的实例内容
2020/02/20 Python
Tensorflow中的dropout的使用方法
2020/03/13 Python
Numpy中np.random.rand()和np.random.randn() 用法和区别详解
2020/10/23 Python
Python list和str互转的实现示例
2020/11/16 Python
HTML5 Canvas实现文本对齐的方法总结
2016/03/24 HTML / CSS
基于HTML5 FileSystem API的使用介绍
2013/04/24 HTML / CSS
美国最大的无人机经销商:DroneNerds
2018/03/20 全球购物
KELLER SPORTS荷兰:在线订购最好的运动产品
2020/10/13 全球购物
户外用品商店创业计划书
2014/01/29 职场文书
环保倡议书格式范文
2014/05/14 职场文书
英文版辞职信
2015/02/28 职场文书
2015年办公室主任工作总结
2015/04/09 职场文书
PHP获取学生成绩的方法
2021/11/17 PHP
Python os和os.path模块详情
2022/04/02 Python
win10清理dns缓存
2022/04/19 数码科技