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对Access读写操作
Mar 30 Python
selenium python浏览器多窗口处理代码示例
Jan 15 Python
python获取微信小程序手机号并绑定遇到的坑
Nov 19 Python
Python+OpenCV图片局部区域像素值处理改进版详解
Jan 23 Python
pycharm访问mysql数据库的方法步骤
Jun 18 Python
python中时间转换datetime和pd.to_datetime详析
Aug 11 Python
使用Python给头像加上圣诞帽或圣诞老人小图标附源码
Dec 25 Python
pycharm远程连接vagrant虚拟机中mariadb数据库
Jun 05 Python
Python OpenCV读取中文路径图像的方法
Jul 02 Python
Django用户认证系统如何实现自定义
Nov 12 Python
python os.rename实例用法详解
Dec 06 Python
解决python3安装pandas出错的问题
May 20 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
php生成图片验证码的实例讲解
2015/08/03 PHP
PHP+sqlite数据库操作示例(创建/打开/插入/检索)
2016/05/26 PHP
PHP面向对象程序设计之对象的遍历操作示例
2019/06/12 PHP
php实现网页上一页下一页翻页过程详解
2019/06/28 PHP
JavaScript DOM学习第一章 W3C DOM简介
2010/02/19 Javascript
分享一个自定义的console类 让你不再纠结JS中的调试代码的兼容
2012/04/20 Javascript
JavaScript高级程序设计 阅读笔记(二十) js错误处理
2012/08/14 Javascript
Jquery 模板数据绑定插件的使用方法详解
2013/07/08 Javascript
JavaScript框架(iframe)操作总结
2014/04/16 Javascript
JavaScript定义变量和变量优先级问题探讨
2014/10/11 Javascript
jquery合并表格中相同文本的相邻单元格
2015/07/17 Javascript
vue.js指令v-model实现方法
2016/12/05 Javascript
解决JSON.stringify()自动将中文转译成unicode的问题
2018/01/05 Javascript
微信小程序实现搜索指定景点周边美食、酒店
2019/05/18 Javascript
Vue基础学习之项目整合及优化
2019/06/02 Javascript
[48:11]完美世界DOTA2联赛 Magma vs GXR 第二场 11.07
2020/11/10 DOTA
[59:53]DOTA2-DPC中国联赛 正赛 VG vs Elephant BO3 第二场 3月6日
2021/03/11 DOTA
Python类的多重继承问题深入分析
2014/11/09 Python
Python编码类型转换方法详解
2016/07/01 Python
利用Python如何生成便签图片详解
2018/07/09 Python
python中多个装饰器的调用顺序详解
2019/07/16 Python
Python多叉树的构造及取出节点数据(treelib)的方法
2019/08/09 Python
简单分析python的类变量、实例变量
2019/08/23 Python
通过celery异步处理一个查询任务的完整代码
2019/11/19 Python
关于Pytorch的MNIST数据集的预处理详解
2020/01/10 Python
python爬虫用mongodb的理由
2020/07/28 Python
python 监控logcat关键字功能
2020/09/04 Python
使用html5 canvas创建太空游戏的示例
2014/05/08 HTML / CSS
Andrew Marc官网:设计师外套的领先制造商
2019/10/30 全球购物
告诉你怎样写创业计划书
2014/01/27 职场文书
物业管理工作方案
2014/05/10 职场文书
市场营销毕业求职信
2014/08/07 职场文书
纪检干部先进事迹材料
2014/08/23 职场文书
2014年班级工作总结范文
2014/12/23 职场文书
严以修身专题学习研讨会发言材料
2015/11/09 职场文书
SpringBoot集成Redis的思路详解
2021/10/16 Redis