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程序运行效率的6个方法
Mar 31 Python
全面了解Python的getattr(),setattr(),delattr(),hasattr()
Jun 14 Python
Python面向对象类继承和组合实例分析
May 28 Python
python实现俄罗斯方块
Jun 26 Python
python文件操作之批量修改文件后缀名的方法
Aug 10 Python
pygame游戏之旅 载入小车图片、更新窗口
Nov 20 Python
手把手教你使用Python创建微信机器人
Apr 29 Python
Tensorflow读取并输出已保存模型的权重数值方式
Jan 04 Python
Django关于admin的使用技巧和知识点
Feb 10 Python
python不同系统中打开方法
Jun 23 Python
如何在Win10系统使用Python3连接Hive
Oct 15 Python
python中K-means算法基础知识点
Jan 25 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 memcache扩展的三种安装方法
2009/04/26 PHP
php解析xml提示Invalid byte 1 of 1-byte UTF-8 sequence错误的处理方法
2013/11/14 PHP
ThinkPHP控制器间实现相互调用的方法
2014/10/31 PHP
PHP中两个float(浮点数)比较实例分析
2015/09/27 PHP
PHP正则表达式入门教程(推荐)
2016/05/18 PHP
PHP异常处理定义与使用方法分析
2017/07/25 PHP
PHP实现的ID混淆算法类与用法示例
2018/08/10 PHP
smarty模板的使用方法实例分析
2019/09/18 PHP
利用javascript中的call实现继承
2007/01/22 Javascript
一个JS翻页效果
2007/07/23 Javascript
Javascript 布尔型分析
2008/12/22 Javascript
jQuery Tools tooltip使用说明
2012/07/14 Javascript
JS小功能(setInterval实现图片效果显示时间)实例代码
2013/11/28 Javascript
使用phantomjs进行网页抓取的实现代码
2014/09/29 Javascript
NodeJS学习笔记之FS文件模块
2015/01/13 NodeJs
jquery通过ajax加载一段文本内容的方法
2015/01/15 Javascript
浅谈javascript中的闭包
2015/05/13 Javascript
Java中int与integer的区别(基本数据类型与引用数据类型)
2017/02/19 Javascript
基于ajax和jsonp的原生封装(实例)
2017/10/16 Javascript
vue 计算属性和侦听器的使用小结
2021/01/25 Vue.js
[02:57]DOTA2亚洲邀请赛 SECRET战队出场宣传片
2015/02/07 DOTA
在Python的gevent框架下执行异步的Solr查询的教程
2015/04/16 Python
win10环境下python3.5安装步骤图文教程
2017/02/03 Python
python检索特定内容的文本文件实例
2018/06/05 Python
python在回调函数中获取返回值的方法
2019/02/22 Python
Python OS模块实例详解
2019/04/15 Python
python同时替换多个字符串方法示例
2019/09/17 Python
常用python爬虫库介绍与简要说明
2020/01/25 Python
Python3基于plotly模块保存图片表格
2020/08/03 Python
python爬取股票最新数据并用excel绘制树状图的示例
2021/03/01 Python
日本非常有名的内衣丝袜品牌:GUNZE
2017/01/06 全球购物
小橄榄树:Le Petit Olivier
2018/04/23 全球购物
JAVA程序设计笔试题面试题一套
2015/07/28 面试题
工厂厂长的职责
2013/12/12 职场文书
八年级物理教学反思
2014/01/19 职场文书
2014年教师教学工作总结
2014/11/08 职场文书