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编写检测数据库SA用户的方法
Jul 11 Python
调试Python程序代码的几种方法总结
Apr 28 Python
Python IDE PyCharm的基本快捷键和配置简介
Nov 04 Python
Python编程中使用Pillow来处理图像的基础教程
Nov 20 Python
python3使用requests模块爬取页面内容的实战演练
Sep 25 Python
教你用Python写安卓游戏外挂
Jan 11 Python
解决Python3中的中文字符编码的问题
Jul 18 Python
Python获取好友地区分布及好友性别分布情况代码详解
Jul 10 Python
python制作英语翻译小工具代码实例
Sep 09 Python
python 变量初始化空列表的例子
Nov 28 Python
Python numpy大矩阵运算内存不足如何解决
Nov 19 Python
matplotlib实现数据实时刷新的示例代码
Jan 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
AMFPHP php远程调用(RPC, Remote Procedure Call)工具 快速入门教程
2010/05/10 PHP
用PHP实现递归循环每一个目录
2010/08/08 PHP
PHP结合Redis+MySQL实现冷热数据交换应用案例详解
2019/07/09 PHP
设为首页和收藏的Javascript代码(亲测兼容IE,Firefox,chrome等浏览器)
2013/11/18 Javascript
JavaScript中switch判断容易犯错的一个细节
2014/08/27 Javascript
推荐25个超炫的jQuery网格插件
2014/11/28 Javascript
javascript实现带节日和农历的日历特效
2015/02/01 Javascript
原生Js实现简易烟花爆炸效果的方法
2015/03/20 Javascript
BootStrap中Datetimepicker和uploadify插件应用实例小结
2016/05/26 Javascript
EasyUI Pagination 分页的两种做法小结
2016/07/09 Javascript
轻松掌握JavaScript状态模式
2016/09/07 Javascript
原生JavaScript制作计算器
2016/10/16 Javascript
微信小程序中显示html格式内容的方法
2017/04/25 Javascript
vue中的计算属性实例详解
2018/09/19 Javascript
vue打包相关细节整理(小结)
2018/09/28 Javascript
一份超级详细的Vue-cli3.0使用教程【推荐】
2018/11/15 Javascript
Typescript 中的 interface 和 type 到底有什么区别详解
2019/06/18 Javascript
jquery实现加载更多"转圈圈"效果(示例代码)
2020/11/09 jQuery
Vue 401配合Vuex防止多次弹框的案例
2020/11/11 Javascript
[05:11]TI9战队采访——VIRTUSPRO
2019/08/22 DOTA
Cpy和Python的效率对比
2015/03/20 Python
git使用.gitignore设置不生效或不起作用问题的解决方法
2017/06/01 Python
详解Python文本操作相关模块
2017/06/22 Python
Numpy中stack(),hstack(),vstack()函数用法介绍及实例
2018/01/09 Python
python实现简单淘宝秒杀功能
2018/05/03 Python
opencv python 2D直方图的示例代码
2018/07/20 Python
Python实现的排列组合、破解密码算法示例
2019/04/12 Python
Python Django 封装分页成通用的模块详解
2019/08/21 Python
python实现文法左递归的消除方法
2020/05/22 Python
Python socket服务常用操作代码实例
2020/06/22 Python
一文带你了解Python 四种常见基础爬虫方法介绍
2020/12/04 Python
西班牙网上书店:Casa del Libro
2016/11/01 全球购物
领先的英国注册在线药房 :Simply Meds Online
2019/03/28 全球购物
法语专业求职信
2014/07/20 职场文书
学校会议通知范文
2015/04/15 职场文书
教你使用VS Code的MySQL扩展管理数据库的方法
2022/01/22 MySQL