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对配置文件.ini进行增删改查操作的方法示例
Jul 28 Python
获取python的list中含有重复值的index方法
Jun 27 Python
基于pycharm导入模块显示不存在的解决方法
Oct 13 Python
python3.7 sys模块的具体使用
Jul 22 Python
Django 实现admin后台显示图片缩略图的例子
Jul 28 Python
使用python切片实现二维数组复制示例
Nov 26 Python
TensorFlow Saver:保存和读取模型参数.ckpt实例
Feb 10 Python
开启Django博客的RSS功能的实现方法
Feb 17 Python
pytorch ImageFolder的覆写实例
Feb 20 Python
Django设置Postgresql的操作
May 14 Python
python在一个范围内取随机数的简单实例
Aug 16 Python
VSCode中autopep8无法运行问题解决方案(提示Error: Command failed,usage)
Mar 02 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函数
2006/10/09 PHP
COM in PHP (winows only)
2006/10/09 PHP
Yii中使用PHPExcel导出Excel的方法
2014/12/26 PHP
微信公众平台DEMO(PHP)
2016/05/04 PHP
YII2框架中ActiveDataProvider与GridView的配合使用操作示例
2020/03/18 PHP
文本框获得焦点和失去焦点的判断代码
2012/03/18 Javascript
node.js中的fs.fchmodSync方法使用说明
2014/12/16 Javascript
浅谈jquery回调函数callback的使用
2015/01/30 Javascript
jquery实现网页的页面平滑滚动效果代码
2015/11/02 Javascript
jQuery实现form表单基于ajax无刷新提交方法详解
2015/12/08 Javascript
详解js树形控件—zTree使用总结
2016/12/28 Javascript
js实现密码强度检验
2017/01/15 Javascript
详解Angular2中Input和Output用法及示例
2017/05/21 Javascript
JavaScript实现三级级联特效
2017/11/05 Javascript
bootstrap响应式工具使用详解
2017/11/29 Javascript
详解vue-cli 构建项目 vue-cli请求后台接口 vue-cli使用axios、sass、swiper
2018/05/28 Javascript
Vue头像处理方案小结
2018/07/26 Javascript
JS通过位运算实现权限加解密
2018/08/14 Javascript
Next.js项目实战踩坑指南(笔记)
2018/11/29 Javascript
vue2 中二级路由高亮问题及配置方法
2019/06/10 Javascript
基于Vue和Element-Ui搭建项目的方法
2019/09/06 Javascript
jQuery实现移动端笔触canvas电子签名
2020/05/21 jQuery
JS实现拖拽元素时与另一元素碰撞检测
2020/08/27 Javascript
Python 爬虫图片简单实现
2017/06/01 Python
python监测当前联网状态并连接的实例
2018/12/18 Python
python代码实现逻辑回归logistic原理
2019/08/07 Python
一些关于python 装饰器的个人理解
2020/08/31 Python
Html5实现文件异步上传功能
2017/05/19 HTML / CSS
惠普墨西哥官方商店:HP墨西哥
2016/12/01 全球购物
美国山地自行车、露营、户外装备和服装购物网站:Aventuron
2018/05/05 全球购物
您在慕尼黑的跑步商店:Lauf-bar
2019/10/11 全球购物
医院护士专业个人的求职信
2013/12/09 职场文书
自荐书4要点
2014/01/25 职场文书
杭州西湖英语导游词
2015/02/03 职场文书
CSS3鼠标悬浮过渡缩放效果
2021/04/17 HTML / CSS
使用pycharm运行flask应用程序的详细教程
2021/06/07 Python