python实现批量视频分帧、保存视频帧


Posted in Python onMay 31, 2019

本篇博客介绍利用python脚本实现视频分帧,并将每一帧保存到本地。主要基于opencv包来实现,在运行代码前确保opencv包已正确安装。下面是主要代码:

import os 
import cv2
 
videos_src_path = '/home/shao/violence_detection_code/Movies_Dataset/fights'
videos_save_path = '/home/shao/violence_detection_code/Movies_Dataset/fights_pic'
 
videos = os.listdir(videos_src_path)
videos.sort(key=lambda x:int(x[5:-4]))
 
i = 1
 
for each_video in videos:
 if not os.path.exists(videos_save_path + '/' + str(i)):
 os.mkdir(videos_save_path + '/' + str(i))
 each_video_save_full_path = os.path.join(videos_save_path,str(i))+'/'
 each_video_full_path = os.path.join(videos_src_path,each_video)
 cap = cv2.VideoCapture(each_video_full_path)
 frame_count = 1
 success = True
 
 while(success):
 success,frame = cap.read()
 if success==True:
 cv2.imwrite(each_video_save_full_path + "frame%d.jpg" % frame_count,
 frame)
 frame_count = frame_count + 1
 i = i + 1
 
 cap.release()

代码注释:

1.第1,2行完成导入几个需要的包;

2.第4,5行分别是待分帧的原始视频路径、分帧后需要保存视频帧的文件路径;这里需要注意的是,我写的是文件夹,也就是说在/home/shao/violence_detection_code/Movies_Dataset/fights目录下有多个视频XXX.avi,XXX.avi等形式;如果只需要处理单个视频的话,可以稍微改一下即可。

3.第7行表示将所有视频的文件名存到videos中,第8行是可选项,表示对fights文件夹下的视频进行排序,x[5:-4]表示按照文件名第5个字符到倒数第4个字符之间的符号排序,因为我的视频是newfi1.avi,newfi2.avi……的格式,我想实现的是按照数字1,2,3的顺序提取视频帧;

4.之后的代码就是循环处理每个视频,将每个视频的视频帧保存到文件夹中。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python 使用requests模块发送GET和POST请求的实现代码
Sep 21 Python
Python生成随机数组的方法小结
Apr 15 Python
浅谈python装饰器探究与参数的领取
Dec 01 Python
对python中执行DOS命令的3种方法总结
May 12 Python
python2与python3的print及字符串格式化小结
Nov 30 Python
使用PIL(Python-Imaging)反转图像的颜色方法
Jan 24 Python
Python2和Python3中@abstractmethod使用方法
Feb 04 Python
python Shapely使用指南详解
Feb 18 Python
python实现最速下降法
Mar 24 Python
Python实现加密接口测试方法步骤详解
Jun 05 Python
Python中过滤字符串列表的方法
Dec 22 Python
Python 如何将integer转化为罗马数(3999以内)
Jun 05 Python
Python内置random模块生成随机数的方法
May 31 #Python
Python模块、包(Package)概念与用法分析
May 31 #Python
python多线程下信号处理程序示例
May 31 #Python
浅谈Python大神都是这样处理XML文件的
May 31 #Python
Python2.7实现多进程下开发多线程示例
May 31 #Python
Python3内置模块之json编解码方法小结【推荐】
Dec 09 #Python
一文了解Python并发编程的工程实现方法
May 31 #Python
You might like
第八节--访问方式
2006/11/16 PHP
PHP 代码规范小结
2012/03/08 PHP
PHP获取客户端真实IP地址的5种情况分析和实现代码
2014/07/08 PHP
今天你说520了吗?不仅有php表白书还有java表白神器
2016/05/20 PHP
PHP版单点登陆实现方案的实例
2016/11/17 PHP
PHP实现时间日期友好显示实现代码
2019/09/08 PHP
PHP dirname功能及原理实例解析
2020/10/28 PHP
Extjs学习笔记之六 面版
2010/01/08 Javascript
JQuery的Validation插件中Remote验证的中文问题
2010/07/26 Javascript
js中的string.format函数代码
2020/08/11 Javascript
不用构造函数(Constructor)new关键字也能实现JavaScript的面向对象
2013/01/11 Javascript
js调用webservice中的方法实现思路及代码
2013/02/25 Javascript
Bootstrap Paginator分页插件使用方法详解
2016/05/30 Javascript
JS数组返回去重后数据的方法解析
2017/01/03 Javascript
RequireJs的使用详解
2017/02/19 Javascript
纯JS实现轮播图
2017/02/22 Javascript
JS 中使用Promise 实现红绿灯实例代码(demo)
2017/10/20 Javascript
详解Nodejs mongoose
2018/06/10 NodeJs
jQuery插件实现弹性运动完整示例
2018/07/07 jQuery
JavaScript笛卡尔积超简单实现算法示例
2018/07/30 Javascript
koa socket即时通讯的示例代码
2018/09/07 Javascript
node.js基于socket.io快速实现一个实时通讯应用
2019/04/23 Javascript
Vue Extends 扩展选项用法完整实例
2019/09/17 Javascript
Vue数据双向绑定原理实例解析
2020/05/15 Javascript
详解python基础之while循环及if判断
2017/08/24 Python
python主线程捕获子线程的方法
2018/06/17 Python
python读取xlsx的方法
2018/12/25 Python
twilio python自动拨打电话,播放自定义mp3音频的方法
2019/08/08 Python
python psutil监控进程实例
2019/12/17 Python
利用Tensorflow的队列多线程读取数据方式
2020/02/05 Python
Python 操作SQLite数据库的示例
2020/10/16 Python
选购世界上最好的美妆品:Cult Beauty
2017/11/03 全球购物
大学生怎样写好自荐信
2014/02/25 职场文书
感谢信的格式
2015/01/21 职场文书
个人总结与自我评价2015
2015/03/11 职场文书
如何制定一份可行的计划!
2019/06/21 职场文书