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 相关文章推荐
详解Django rest_framework实现RESTful API
May 24 Python
python正则表达式匹配[]中间为任意字符的实例
Dec 25 Python
详解Django中CBV(Class Base Views)模型源码分析
Feb 25 Python
python实现美团订单推送到测试环境,提供便利操作示例
Aug 09 Python
django 多对多表的创建和插入代码实现
Sep 09 Python
解决pycharm启动后总是不停的updating indices...indexing的问题
Nov 27 Python
用python求一重积分和二重积分的例子
Dec 06 Python
Python发送手机动态验证码代码实例
Feb 28 Python
python 在sql语句中使用%s,%d,%f说明
Jun 06 Python
浅谈Django前端后端值传递问题
Jul 15 Python
Python实现删除某列中含有空值的行的示例代码
Jul 20 Python
Python如何读写字节数据
Aug 05 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
环境会对咖啡种植有什么影响
2021/03/03 咖啡文化
php 魔术函数使用说明
2010/02/21 PHP
Windows平台实现PHP连接SQL Server2008的方法
2017/07/26 PHP
Javascript 同时提交多个Web表单的方法
2009/02/19 Javascript
javascript椭圆旋转相册实现代码
2012/01/16 Javascript
event.currentTarget与event.target的区别介绍
2012/12/31 Javascript
用js调用迅雷下载代码的二种方法
2013/04/15 Javascript
JavaScript对象和字串之间的转换实例探讨
2013/04/21 Javascript
jquery设置表单元素为不可用的简单代码
2016/07/04 Javascript
JS封装的选项卡TAB切换效果示例
2016/09/20 Javascript
Node.js的文件权限及读写flag详解
2016/10/11 Javascript
JavaScript高仿支付宝倒计时页面及代码实现
2016/10/21 Javascript
bootstrap模态框实现拖拽效果
2016/12/14 Javascript
javascript作用域链与执行环境详解
2017/03/25 Javascript
vue-cli的工程模板与构建工具详解
2018/09/27 Javascript
利用JavaScript将Excel转换为JSON示例代码
2019/06/14 Javascript
vue-router为激活的路由设置样式操作
2020/07/18 Javascript
Python基于列表list实现的CRUD操作功能示例
2018/01/05 Python
Pandas中resample方法详解
2019/07/02 Python
python 多维高斯分布数据生成方式
2019/12/09 Python
详解python环境安装selenium和手动下载安装selenium的方法
2020/03/17 Python
jupyter notebook 增加kernel教程
2020/04/10 Python
Pytorch mask-rcnn 实现细节分享
2020/06/24 Python
python闭包与引用以及需要注意的陷阱
2020/09/18 Python
CSS 3.0 结合video视频实现的创意开幕效果
2020/06/01 HTML / CSS
h5实现获取用户地理定位的实例代码
2017/07/17 HTML / CSS
如何在Canvas中添加事件的方法示例
2019/05/21 HTML / CSS
html5借用repeating-linear-gradient实现一把刻度尺(ruler)
2019/09/09 HTML / CSS
美国购买新书和二手书网站:Better World Books
2018/10/31 全球购物
读书心得体会
2013/12/28 职场文书
我的中国梦演讲稿400字
2014/08/19 职场文书
2014教师个人自我评价范文
2014/09/13 职场文书
公务员四风问题对照检查材料整改措施
2014/09/26 职场文书
县长群众路线对照检查材料思想汇报
2014/10/02 职场文书
「月刊Action」2022年5月号封面公开
2022/03/21 日漫
Spring Cloud OAuth2实现自定义token返回格式
2022/06/25 Java/Android