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之通过Python连接数据库
Oct 28 Python
Python 的内置字符串方法小结
Mar 15 Python
Python设计模式之抽象工厂模式
Aug 25 Python
Python 字符串大小写转换的简单实例
Jan 21 Python
利用Python实现Windows定时关机功能
Mar 21 Python
python中将\\uxxxx转换为Unicode字符串的方法
Sep 06 Python
用Python+OpenCV对比图像质量的几种方法
Jul 15 Python
Python中*args和**kwargs的区别详解
Sep 17 Python
利用Python脚本批量生成SQL语句
Mar 04 Python
Django如何实现密码错误报错提醒
Sep 04 Python
python+appium+yaml移动端自动化测试框架实现详解
Nov 24 Python
python3中布局背景颜色代码分析
Dec 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
php Session存储到Redis的方法
2013/11/04 PHP
用javascript实现在小方框中浏览大图的代码
2007/08/14 Javascript
JavaScript创建命名空间(namespace)的最简实现
2007/12/11 Javascript
JQuery Tips(4) 一些关于提高JQuery性能的Tips
2009/12/19 Javascript
jQuery 全选/反选以及单击行改变背景色实例
2013/07/02 Javascript
深入理解JavaScript系列(18):面向对象编程之ECMAScript实现
2015/03/05 Javascript
Jquery使用val方法读写value值
2015/05/18 Javascript
JQuery datepicker 用法详解
2015/12/25 Javascript
JS 通过系统时间限定动态添加 select option的实例代码
2016/06/09 Javascript
利用JS实现数字增长
2016/07/28 Javascript
轮播图组件js代码
2016/08/08 Javascript
概述如何实现一个简单的浏览器端js模块加载器
2016/12/07 Javascript
JavaScript函数基础详解
2017/02/03 Javascript
vue2手机APP项目添加开屏广告或者闪屏广告
2017/11/28 Javascript
JS引用传递与值传递的区别与用法分析
2018/06/01 Javascript
在js代码拼接dom对象到页面上的模板总结
2018/10/21 Javascript
微信小程序实现九宫格抽奖
2020/04/15 Javascript
微信小程序日历插件代码实例
2019/12/04 Javascript
element-ui如何防止重复提交的方法步骤
2019/12/09 Javascript
Vant 中的Toast设置全局的延迟时间操作
2020/11/04 Javascript
在Python的循环体中使用else语句的方法
2015/03/30 Python
分析Python中解析构建数据知识
2018/01/20 Python
浅谈python中对于json写入txt文件的编码问题
2018/06/07 Python
python中使用print输出中文的方法
2018/07/16 Python
python使用docx模块读写docx文件的方法与docx模块常用方法详解
2020/02/17 Python
Python使用graphviz画流程图过程解析
2020/03/31 Python
python中判断文件结束符的具体方法
2020/08/04 Python
python破解同事的压缩包密码
2020/10/14 Python
泰国演唱会订票网站:StubHub泰国
2018/02/26 全球购物
工地门卫岗位职责
2013/12/30 职场文书
体育专业大学生职业生涯规划范文:打造自己的运动帝国
2014/09/12 职场文书
公司新人试用期自我评价
2014/09/17 职场文书
2015试用期转正工作总结
2014/12/12 职场文书
总经理岗位职责范本
2015/04/01 职场文书
社区活动总结范文
2015/05/07 职场文书
USB TYPE-C 或将成为所有智能手机充电标准
2022/04/21 数码科技