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中使用base64模块处理字符编码的教程
Apr 28 Python
python如何查看微信消息撤回
Nov 27 Python
python 读取dicom文件,生成info.txt和raw文件的方法
Jan 24 Python
Python3.6中Twisted模块安装的问题与解决
Apr 15 Python
python将字符串list写入excel和txt的实例
Jul 20 Python
Python使用ffmpy将amr格式的音频转化为mp3格式的例子
Aug 08 Python
python检测服务器端口代码实例
Aug 31 Python
django框架forms组件用法实例详解
Dec 10 Python
使用Python脚本从文件读取数据代码实例
Jan 19 Python
解决django无法访问本地static文件(js,css,img)网页里js,cs都加载不了
Apr 07 Python
Python趣味实例,实现一个简单的抽奖刮刮卡
Jul 18 Python
python基于Kivy写一个图形桌面时钟程序
Jan 28 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实现单链表的实例代码
2013/03/22 PHP
PHP获取php,mysql,apche的版本信息示例代码
2014/01/16 PHP
php中请求url的五种方法总结
2017/07/13 PHP
PHP获取类私有属性的3种方法
2020/09/10 PHP
高性能web开发 如何加载JS,JS应该放在什么位置?
2010/05/14 Javascript
js实现文本框中焦点在最后位置
2014/03/04 Javascript
什么是Node.js?Node.js详细介绍
2014/06/01 Javascript
jQuery队列操作方法实例
2014/06/11 Javascript
javascript简单比较日期大小的方法
2016/01/05 Javascript
详解js运算符单竖杠“|”与“||”的用法和作用介绍
2016/11/04 Javascript
jQuery Chosen通用初始化
2017/03/07 Javascript
AngularJS路由切换实现方法分析
2017/03/17 Javascript
iOS + node.js使用Socket.IO框架进行实时通信示例
2017/04/14 Javascript
简单实现js进度条加载效果
2020/03/25 Javascript
小程序登录态管理的方法示例
2018/11/13 Javascript
VUE简单的定时器实时刷新的实现方法
2019/01/20 Javascript
node获取客户端ip功能简单示例
2019/08/24 Javascript
bootstrap table实现iview固定列的效果实例代码详解
2019/09/30 Javascript
JavaScript逻辑运算符相关总结
2020/09/04 Javascript
[01:03:36]Ti4 循环赛第三日DK vs Titan
2014/07/12 DOTA
[41:52]2018DOTA2亚洲邀请赛3月29日 小组赛A组 TNC VS OpTic
2018/03/30 DOTA
Python运行的17个时新手常见错误小结
2012/08/07 Python
python中日志logging模块的性能及多进程详解
2017/07/18 Python
关于Python核心框架tornado的异步协程的2种方法详解
2019/08/28 Python
pytorch制作自己的LMDB数据操作示例
2019/12/18 Python
Python netmiko模块的使用
2020/02/14 Python
Python实现封装打包自己写的代码,被python import
2020/07/12 Python
10张动图学会python循环与递归问题
2021/02/06 Python
演讲稿怎么写才完美
2014/01/02 职场文书
优秀村官事迹材料
2014/01/10 职场文书
祖国在我心中演讲稿200字
2014/08/28 职场文书
劳动争议仲裁代理词
2015/05/25 职场文书
2016年社区“我们的节日·中秋节”活动总结
2016/04/05 职场文书
python3实现无权最短路径的方法
2021/05/12 Python
前端监听websocket消息并实时弹出(实例代码)
2021/11/27 Javascript
MongoDB使用场景总结
2022/02/24 MongoDB