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爬取Coursera课程资源的详细过程
Nov 04 Python
1分钟快速生成用于网页内容提取的xslt
Feb 23 Python
Python变量赋值的秘密分享
Apr 03 Python
python中in在list和dict中查找效率的对比分析
May 04 Python
python实现对任意大小图片均匀切割的示例
Dec 05 Python
Python+pyplot绘制带文本标注的柱状图方法
Jul 08 Python
python队列原理及实现方法示例
Nov 27 Python
快速解决jupyter启动卡死的问题
Apr 10 Python
Python几种常见算法汇总
Jun 02 Python
Python pickle模块常用方法代码实例
Oct 10 Python
Python3自带工具2to3.py 转换 Python2.x 代码到Python3的操作
Mar 03 Python
pytorch锁死在dataloader(训练时卡死)
May 28 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实现ODBC数据分页显示一例
2006/10/09 PHP
php下连接mssql2005的代码
2011/01/17 PHP
浅谈php冒泡排序
2014/12/30 PHP
PHP中使用BigMap实例
2015/03/30 PHP
PHP中ajax无刷新上传图片与图片下载功能
2017/02/21 PHP
实现js保留小数点后N位的代码
2014/11/13 Javascript
浅析jQuery EasyUI中的tree使用指南
2014/12/18 Javascript
js实现带有介绍的Select列表菜单实例
2015/08/18 Javascript
Ext JS框架程序中阻止键盘触发回退或者刷新页面的代码分享
2016/06/07 Javascript
json定义及jquery操作json的方法
2016/09/29 Javascript
javascript 删除数组元素和清空数组的简单方法
2017/02/24 Javascript
js中的面向对象入门
2017/03/06 Javascript
Node.JS使用Sequelize操作MySQL的示例代码
2017/10/09 Javascript
JavaScript实现树的遍历算法示例【广度优先与深度优先】
2017/10/26 Javascript
webpack写jquery插件的环境配置
2017/12/21 jQuery
vue+springboot前后端分离实现单点登录跨域问题解决方法
2018/01/30 Javascript
Node.js原生api搭建web服务器的方法步骤
2019/02/15 Javascript
vue实现导航标题栏随页面滚动渐隐渐显效果
2020/03/12 Javascript
python执行外部程序的常用方法小结
2015/03/21 Python
Python工程师面试题 与Python基础语法相关
2016/01/14 Python
Python单元测试unittest的具体使用示例
2018/12/17 Python
基于python框架Scrapy爬取自己的博客内容过程详解
2019/08/05 Python
如何将tensorflow训练好的模型移植到Android (MNIST手写数字识别)
2020/04/22 Python
Django视图类型总结
2021/02/17 Python
基于Html5 canvas实现裁剪图片和马赛克功能及又拍云上传图片 功能
2019/07/09 HTML / CSS
老海军美国官网:Old Navy
2016/09/05 全球购物
分厂厂长岗位职责
2013/12/29 职场文书
大学同学聚会邀请函
2014/01/29 职场文书
《白鹅》教学反思
2014/04/13 职场文书
教师演讲稿开场白
2014/08/25 职场文书
优秀党员申报材料
2014/12/18 职场文书
银行求职自荐信范文
2015/03/04 职场文书
运动会致辞稿
2015/07/29 职场文书
Nginx已编译的nginx-添加新模块
2021/04/01 Servers
用 Python 元类的特性实现 ORM 框架
2021/05/19 Python
Windows 64位 安装 mysql 8.0.28 图文教程
2022/04/19 MySQL