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 专题四 文件基础知识
Mar 20 Python
python 对给定可迭代集合统计出现频率,并排序的方法
Oct 18 Python
解决python给列表里添加字典时被最后一个覆盖的问题
Jan 21 Python
python+opencv像素的加减和加权操作的实现
Jul 14 Python
通过Python编写一个简单登录功能过程解析
Sep 04 Python
python使用 __init__初始化操作简单示例
Sep 26 Python
Python + Requests + Unittest接口自动化测试实例分析
Dec 12 Python
Python替换NumPy数组中大于某个值的所有元素实例
Jun 08 Python
Tensorflow--取tensorf指定列的操作方式
Jun 30 Python
python如何绘制疫情图
Sep 16 Python
Python中相见恨晚的技巧
Apr 13 Python
教你怎么用Python操作MySql数据库
May 31 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面向对象——访问修饰符介绍
2012/11/08 PHP
php实现天干地支计算器示例
2014/03/14 PHP
一个简单的PHP验证码实现代码
2014/05/10 PHP
IOS 开发之NSDictionary转换成JSON字符串
2017/08/14 PHP
php实现根据身份证获取精准年龄
2020/02/26 PHP
Yii使用DbTarget实现日志功能的示例代码
2020/07/21 PHP
JavaScript DOM 学习第二章 编辑文本
2010/02/19 Javascript
基于jquery实现后台左侧菜单点击上下滑动显示
2013/04/11 Javascript
基于Unit PNG Fix.js有时候在ie6下不正常的解决办法
2013/06/26 Javascript
验证手机号码的JS方法分享
2013/09/10 Javascript
淘宝网提供的国内NPM镜像简介和使用方法
2014/04/17 Javascript
JavaScript的jQuery库中ready方法的学习教程
2015/08/14 Javascript
jQuery实现iframe父窗体和子窗体的相互调用
2016/06/17 Javascript
bootstrap插件treeview实现全选父节点下所有子节点和反选功能
2017/07/21 Javascript
详解vue.js下引入百度地图jsApi的两种方法
2018/07/27 Javascript
vue devtools的安装与使用教程
2018/08/08 Javascript
Vue动态获取width的方法
2018/08/22 Javascript
原生javascript自定义input[type=radio]效果示例
2019/08/27 Javascript
使用JS来动态操作css的几种方法
2019/12/18 Javascript
[30:37]【全国守擂赛】第三周擂主赛 Dark Knight vs. Leopard Gaming
2020/05/04 DOTA
动态创建类实例代码
2009/10/07 Python
Python 对输入的数字进行排序的方法
2018/06/23 Python
对pycharm代码整体左移和右移缩进快捷键的介绍
2018/07/16 Python
PyQt5实现QLineEdit添加clicked信号的方法
2019/06/25 Python
python实现单链表的方法示例
2019/09/03 Python
python算的上脚本语言吗
2020/06/22 Python
Python+pyftpdlib实现局域网文件互传
2020/08/24 Python
input file上传文件样式支持html5的浏览器解决方案
2012/11/14 HTML / CSS
英国最受信任的在线眼镜商之一:Fashion Eyewear
2019/10/31 全球购物
Spotahome意大利:公寓和房间出租
2020/02/21 全球购物
出纳试用期自我鉴定范文
2014/09/16 职场文书
关于长城的导游词
2015/01/30 职场文书
信息技术远程培训心得体会
2016/01/09 职场文书
2016班级元旦联欢会开幕词
2016/03/04 职场文书
详解OpenCV曝光融合
2022/04/29 Python
Windows11 Insider Preview Build 25206今日发布 更新内容汇总
2022/09/23 数码科技