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中列表和元祖的使用方法
Apr 25 Python
Python循环语句之break与continue的用法
Oct 14 Python
举例讲解Python中字典的合并值相加与异或对比
Jun 04 Python
查看TensorFlow checkpoint文件中的变量名和对应值方法
Jun 14 Python
Python 实现两个服务器之间文件的上传方法
Feb 13 Python
Python中的 sort 和 sorted的用法与区别
Aug 10 Python
python编写微信公众号首图思路详解
Dec 13 Python
python 成功引入包但无法正常调用的解决
Mar 09 Python
使用python图形模块turtle库绘制樱花、玫瑰、圣诞树代码实例
Mar 16 Python
numpy库ndarray多维数组的维度变换方法(reshape、resize、swapaxes、flatten)
Apr 28 Python
Django debug为True时,css加载失败的解决方案
Apr 24 Python
pytorch中F.avg_pool1d()和F.avg_pool2d()的使用操作
May 22 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
基于数据库的在线人数,日访问量等统计
2006/10/09 PHP
PHP ? EasyUI DataGrid 资料取的方式介绍
2012/11/07 PHP
PHP中的随机性 你觉得自己幸运吗?
2016/01/22 PHP
php文件上传类完整实例
2016/05/14 PHP
[原创]smarty简单模板变量输出方法
2016/07/09 PHP
Ajax提交表单时验证码自动验证 php后端验证码检测
2016/07/20 PHP
PHP XML和数组互相转换详解
2016/10/26 PHP
JavaScript 学习笔记之语句
2015/01/14 Javascript
jQuery网页选项卡插件rTabs用法实例分析
2015/08/26 Javascript
Bootstrap嵌入jqGrid,使你的table牛逼起来
2016/05/05 Javascript
JavaScript判断是否是微信浏览器
2016/06/13 Javascript
详解vue-router 2.0 常用基础知识点之导航钩子
2017/05/10 Javascript
vue实现图片加载完成前的loading组件方法
2018/02/05 Javascript
关于AngularJS中几种Providers的区别总结
2020/05/17 Javascript
[02:05]2014DOTA2国际邀请赛 BBC外卡赛赛后总结
2014/07/09 DOTA
wxpython中利用线程防止假死的实现方法
2014/08/11 Python
30分钟搭建Python的Flask框架并在上面编写第一个应用
2015/03/30 Python
python生成二维码的实例详解
2017/10/29 Python
基于Python实现用户管理系统
2019/02/26 Python
Python3以GitHub为例来实现模拟登录和爬取的实例讲解
2020/07/30 Python
Python os库常用操作代码汇总
2020/11/03 Python
墨西哥网上购物:Linio墨西哥
2016/10/20 全球购物
出国留学自荐信
2013/10/25 职场文书
新闻专业学生的自我评价
2014/02/13 职场文书
餐厅筹备计划书
2014/04/25 职场文书
篮球比赛口号
2014/06/10 职场文书
祖国在我心中演讲稿(小学生)
2014/09/23 职场文书
房屋鉴定委托书范本
2014/09/23 职场文书
公司授权委托书格式样本
2014/10/01 职场文书
环卫工作汇报材料
2014/10/28 职场文书
经典导游欢迎词
2015/01/26 职场文书
2015年领导班子工作总结
2015/05/23 职场文书
幼儿园新学期开学寄语
2015/05/27 职场文书
工资证明格式模板
2015/06/12 职场文书
详解JAVA的控制语句
2021/11/11 Java/Android
vue使用watch监听属性变化
2022/04/30 Vue.js