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编写脚本使IE实现代理上网的教程
Apr 23 Python
Python批量创建迅雷任务及创建多个文件
Feb 13 Python
使用Python的Flask框架来搭建第一个Web应用程序
Jun 04 Python
python的Tqdm模块的使用
Jan 10 Python
mvc框架打造笔记之wsgi协议的优缺点以及接口实现
Aug 01 Python
Python3实现的判断环形链表算法示例
Mar 07 Python
python算法与数据结构之单链表的实现代码
Jun 27 Python
在linux系统下安装python librtmp包的实现方法
Jul 22 Python
python通过robert、sobel、Laplace算子实现图像边缘提取详解
Aug 21 Python
如何基于python把文字图片写入word文档
Jul 31 Python
python 将Excel转Word的示例
Mar 02 Python
python 指定源路径来解决import问题的操作
Mar 04 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对象实例化单例方法
2017/01/19 PHP
PHP反射机制原理与用法详解
2017/02/15 PHP
PHP中检索字符串的方法分析【strstr与substr_count方法】
2017/02/17 PHP
PHP实现mysqli批量执行多条语句的方法示例
2017/07/22 PHP
javascript网页关闭时提醒效果脚本
2008/10/22 Javascript
js 目录列举函数
2008/11/06 Javascript
原生js获取宽高与jquery获取宽高的方法关系对比
2014/04/04 Javascript
原生js实现淘宝首页点击按钮缓慢回到顶部效果
2014/04/06 Javascript
模拟用户点击弹出新页面不会被浏览器拦截
2014/04/08 Javascript
js实现飞入星星特效代码
2014/10/17 Javascript
通过jquery-ui中的sortable来实现拖拽排序的简单实例
2016/05/24 Javascript
jQuery Easyui DataGrid点击某个单元格即进入编辑状态焦点移开后保存数据
2016/08/15 Javascript
vue打包相关细节整理(小结)
2018/09/28 Javascript
[原创]微信小程序获取网络类型的方法示例
2019/03/01 Javascript
基于JavaScript实现控制下拉列表
2020/05/08 Javascript
基于vue项目设置resolves.alias: '@'路径并适配webstorm
2020/12/02 Vue.js
python发送邮件实例分享
2017/07/28 Python
简单了解Django模板的使用
2017/12/20 Python
TensorFlow实现Batch Normalization
2018/03/08 Python
详解tensorflow载入数据的三种方式
2018/04/24 Python
在cmder下安装ipython以及环境的搭建
2018/10/19 Python
解决nohup执行python程序log文件写入不及时的问题
2019/01/14 Python
python验证码图片处理(二值化)
2019/11/01 Python
利用django创建一个简易的博客网站的示例
2020/09/29 Python
python-jwt用户认证食用教学的实现方法
2021/01/19 Python
一款恶搞头像特效的制作过程 利用css3和jquery
2014/11/21 HTML / CSS
联想哥伦比亚网上商城:Lenovo Colombia
2017/01/10 全球购物
AutoShack.com加拿大:北美主要的汽车零部件零售商
2019/07/24 全球购物
幼儿园爱国卫生月活动总结
2014/06/30 职场文书
公司合作意向书范文
2014/07/30 职场文书
社区服务活动报告
2015/02/05 职场文书
《莫泊桑拜师》教学反思
2016/02/22 职场文书
关于办理居住证的介绍信模板
2019/11/27 职场文书
教你用python控制安卓手机
2021/05/13 Python
Python实现天气查询软件
2021/06/07 Python
springboot集成flyway自动创表的详细配置
2021/06/26 Java/Android