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 json encode datetime类型
Dec 28 Python
Python实现Linux下守护进程的编写方法
Aug 22 Python
Python实现计算文件夹下.h和.cpp文件的总行数
Apr 23 Python
Python实现Windows上气泡提醒效果的方法
Jun 03 Python
Python中使用platform模块获取系统信息的用法教程
Jul 08 Python
Python实现的异步代理爬虫及代理池
Mar 17 Python
Python守护线程用法实例
Jun 23 Python
用Django写天气预报查询网站
Oct 21 Python
Python3 tkinter 实现文件读取及保存功能
Sep 12 Python
python GUI库图形界面开发之PyQt5 UI主线程与耗时线程分离详细方法实例
Feb 26 Python
使用jupyter Nodebook查看函数或方法的参数以及使用情况
Apr 14 Python
OpenCV实现机器人对物体进行移动跟随的方法实例
Nov 09 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 前一天或后一天的日期
2008/06/28 PHP
joomla实现注册用户添加新字段的方法
2016/05/05 PHP
自制PHP框架之路由与控制器
2017/05/07 PHP
Laravel框架Eloquent ORM简介、模型建立及查询数据操作详解
2019/12/04 PHP
符合标准的js表单提交的代码
2007/09/13 Javascript
基于JQuery框架的AJAX实例代码
2009/11/03 Javascript
jquery延迟加载外部js实现代码
2013/01/11 Javascript
jquery实现ajax提交form表单的方法总结
2014/03/03 Javascript
JavaScript组件焦点与页内锚点间传值的方法
2015/02/02 Javascript
jquery实现简单实用的打分程序实例
2015/07/23 Javascript
javaScript事件机制兼容【详细整理】
2016/07/23 Javascript
微信小程序本作用域下调用全局JS详解及实例
2017/02/22 Javascript
js实现带三角符的手风琴效果
2017/03/01 Javascript
Vue.js基础学习之class与样式绑定
2017/03/20 Javascript
基于layer.js实现收货地址弹框选择然后返回相应的地址信息
2017/05/26 Javascript
让nodeJS支持ES6的词法----babel的安装和使用方法
2017/07/31 NodeJs
JavaScript伪数组用法实例分析
2017/12/22 Javascript
微信小程序methods中定义的方法互相调用的实例代码
2018/08/07 Javascript
vue.js 实现评价五角星组件的实例代码
2018/08/13 Javascript
浅谈JavaScript中this的指向更改
2020/07/28 Javascript
React实现评论的添加和删除
2020/10/20 Javascript
python实现用于测试网站访问速率的方法
2015/05/26 Python
让你Python到很爽的加速递归函数的装饰器
2019/05/26 Python
pandas 使用均值填充缺失值列的小技巧分享
2019/07/04 Python
Python代码生成视频的缩略图的实例讲解
2019/12/22 Python
django使用JWT保存用户登录信息
2020/04/22 Python
Python HTMLTestRunner库安装过程解析
2020/05/25 Python
pip/anaconda修改镜像源,加快python模块安装速度的操作
2021/03/04 Python
HTML5自定义data-* data(obj)属性和jquery的data()方法的使用
2012/12/13 HTML / CSS
波兰快递服务:Globkurier.pl
2019/11/08 全球购物
环保倡议书范文
2014/05/12 职场文书
社区志愿者活动方案
2014/08/18 职场文书
领导班子整改方案
2014/10/25 职场文书
业务内勤岗位职责
2015/04/13 职场文书
Django如何与Ajax交互
2021/04/29 Python
Go语言基础切片的创建及初始化示例详解
2021/11/17 Golang