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实现apahce网站日志分析示例
Apr 02 Python
Python多线程爬虫简单示例
Mar 04 Python
python算法表示概念扫盲教程
Apr 13 Python
详解Python import方法引入模块的实例
Aug 02 Python
python如何在循环引用中管理内存
Mar 20 Python
Python应用库大全总结
May 30 Python
numpy使用fromstring创建矩阵的实例
Jun 15 Python
Python实现自定义函数的5种常见形式分析
Jun 16 Python
Python Dataframe 指定多列去重、求差集的方法
Jul 10 Python
利用Python如何制作好玩的GIF动图详解
Jul 11 Python
python3格式化字符串 f-string的高级用法(推荐)
Mar 04 Python
Python实现弹球小游戏
Aug 01 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
Protoss热键控制
2020/03/14 星际争霸
基于PHP静态类的原罪详解
2013/05/06 PHP
php不使用copy()函数复制文件的方法
2015/03/13 PHP
PHP生成各种随机验证码的方法总结【附demo源码】
2017/06/05 PHP
phpstorm 正则匹配删除空行、注释行(替换注释行为空行)
2018/01/21 PHP
php-fpm.conf配置文件中文说明详解及重要参数说明
2018/10/10 PHP
CL vs ForZe BO5 第四场 2.13
2021/03/10 DOTA
Dom与浏览器兼容性说明
2010/10/25 Javascript
『JavaScript』限制Input只能输入数字实现思路及代码
2013/04/22 Javascript
jquery点击页面任何区域实现鼠标焦点十字效果
2013/06/21 Javascript
JavaScript利用正则表达式去除日期中的“-”
2014/07/01 Javascript
node.js中的events.emitter.once方法使用说明
2014/12/10 Javascript
JavaScript获取页面中第一个锚定文本的方法
2015/04/03 Javascript
使用 TypeScript 重新编写的 JavaScript 坦克大战游戏代码
2015/04/07 Javascript
详解JavaScript中双等号引起的隐性类型转换
2016/05/30 Javascript
JS实现PC手机端和嵌入式滑动拼图验证码三种效果
2017/02/15 Javascript
JS简单实现滑动加载数据的方法示例
2017/10/18 Javascript
JavaScript实现移动端弹窗后禁止滚动
2020/05/25 Javascript
vue+element UI实现树形表格
2020/12/29 Vue.js
基于python中的TCP及UDP(详解)
2017/11/06 Python
Python实现的寻找前5个默尼森数算法示例
2018/03/25 Python
Python何时应该使用Lambda函数
2019/07/02 Python
PyTorch实现AlexNet示例
2020/01/14 Python
Python底层封装实现方法详解
2020/01/22 Python
移动web模拟客户端实现多方框输入密码效果【附代码】
2016/03/25 HTML / CSS
HTML5 Video标签的属性、方法和事件汇总介绍
2015/04/24 HTML / CSS
基于HTML5+CSS3实现简单的时钟效果
2017/09/11 HTML / CSS
英国高端食品和葡萄酒超市:Waitrose
2016/08/23 全球购物
Tiqets荷兰:出售欧洲最美丽的景点和博物馆门票
2018/01/09 全球购物
第二批党的群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书
2014年高中生自我评价范文
2014/09/26 职场文书
公司员工体检通知
2015/04/21 职场文书
团组织推荐意见
2015/06/05 职场文书
2016年度师德标兵先进事迹材料
2016/02/26 职场文书
Python 制作自动化翻译工具
2021/04/25 Python
Java设计模式之代理模式
2022/04/22 Java/Android