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解析网页源代码中的115网盘链接实例
Sep 30 Python
python中list循环语句用法实例
Nov 10 Python
探究数组排序提升Python程序的循环的运行效率的原因
Apr 01 Python
Python多进程并发(multiprocessing)用法实例详解
Jun 02 Python
PyQt5 pyqt多线程操作入门
May 05 Python
python实现从pdf文件中提取文本,并自动翻译的方法
Nov 28 Python
用django-allauth实现第三方登录的示例代码
Jun 24 Python
python3.7简单的爬虫实例详解
Jul 08 Python
python实现大学人员管理系统
Oct 25 Python
python numpy实现多次循环读取文件 等间隔过滤数据示例
Mar 14 Python
利用Opencv实现图片的油画特效实例
Feb 28 Python
人工智能深度学习OpenAI baselines的使用方法
May 20 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
PHP5+UTF8多文件上传类
2008/10/17 PHP
PHP中的生成XML文件的4种方法分享
2012/10/06 PHP
php中动态修改ini配置
2014/10/14 PHP
Yii中CGridView实现批量删除的方法
2015/12/28 PHP
Yii中CGridView禁止列排序的设置方法
2016/07/12 PHP
PHP的openssl加密扩展使用小结(推荐)
2016/07/18 PHP
PHP性能分析工具xhprof的安装使用与注意事项
2017/12/19 PHP
PHP网页缓存技术优点及代码实例
2020/07/29 PHP
某人初学javascript的时候写的学习笔记
2010/12/30 Javascript
Node.js中使用Log.io在浏览器中实时监控日志(等同tail -f命令)
2014/09/17 Javascript
js+HTML5实现canvas多种颜色渐变效果的方法
2015/06/05 Javascript
基于javascript实现彩票随机数生成(升级版)
2020/04/17 Javascript
使用json来定义函数,在里面可以定义多个函数的实现方法
2016/10/28 Javascript
微信小程序出现wx.getLocation再次授权问题的解决方法分析
2019/01/16 Javascript
python中的hashlib和base64加密模块使用实例
2014/09/02 Python
python版简单工厂模式
2017/10/16 Python
Python内存管理方式和垃圾回收算法解析
2017/11/11 Python
浅谈Python 列表字典赋值的陷阱
2019/01/20 Python
python等差数列求和公式前 100 项的和实例
2020/02/25 Python
Python爬虫实战案例之爬取喜马拉雅音频数据详解
2020/12/07 Python
selenium如何定位span元素的实现
2021/01/13 Python
中国专业的综合网上购物商城:京东
2016/08/02 全球购物
世界领先的在线地板和建筑材料批发商:BuildDirect
2017/02/26 全球购物
美国最受欢迎的度假目的地优惠套餐:BookVIP
2018/09/27 全球购物
中文系学生自荐信范文
2013/11/13 职场文书
领导走群众路线整改措施思想汇报
2014/10/12 职场文书
语文复习计划
2015/01/19 职场文书
文言文辞职信
2015/02/28 职场文书
承兑汇票延期证明
2015/06/23 职场文书
2015七夕情人节宣传语
2015/07/14 职场文书
一波干货,会议主持词开场白范文
2019/05/06 职场文书
导游词之天津古文化街
2019/11/09 职场文书
详解CSS不受控制的position fixed
2021/05/25 HTML / CSS
OpenCV全景图像拼接的实现示例
2021/06/05 Python
Java实现二分搜索树的示例代码
2022/03/17 Java/Android
vue elementUI批量上传文件
2022/04/26 Vue.js