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中isalnum()方法的使用
May 18 Python
python 线程的暂停, 恢复, 退出详解及实例
Dec 06 Python
Python实现正则表达式匹配任意的邮箱方法
Dec 20 Python
如何利用Anaconda配置简单的Python环境
Jun 24 Python
python openvc 裁剪、剪切图片 提取图片的行和列
Sep 19 Python
如何修复使用 Python ORM 工具 SQLAlchemy 时的常见陷阱
Nov 19 Python
使用PyTorch训练一个图像分类器实例
Jan 08 Python
python新式类和经典类的区别实例分析
Mar 23 Python
Python实现AI换脸功能
Apr 10 Python
利用python如何实现猫捉老鼠小游戏
Dec 04 Python
python使用pymysql模块操作MySQL
Jun 16 Python
Python anaconda安装库命令详解
Oct 16 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 执行系统命令的方法
2009/07/07 PHP
PHP命令行脚本接收传入参数的三种方式
2014/08/20 PHP
PHP对象的浅复制与深复制的实例详解
2017/10/26 PHP
YII框架页面缓存操作示例
2019/04/29 PHP
php图像生成函数之间的区别分析
2012/12/06 Javascript
浅谈JavaScript实现面向对象中的类
2014/12/09 Javascript
JS实现文字向下滚动完整实例
2015/02/06 Javascript
JavaScript采用递归算法计算阶乘实例
2015/08/04 Javascript
jquery easyui datagrid实现增加,修改,删除方法总结
2016/05/25 Javascript
自定义require函数让浏览器按需加载Js文件
2016/11/24 Javascript
兼容浏览器的js事件绑定函数(详解)
2017/05/09 Javascript
js图片上传的封装代码
2017/08/01 Javascript
详解Angular操作cookies方法
2018/06/01 Javascript
vue 中动态绑定class 和 style的方法代码详解
2018/06/01 Javascript
vue-cli 使用axios的操作方法及整合axios的多种方法
2018/09/12 Javascript
JQuery获取元素尺寸、位置及页面滚动事件应用示例
2019/05/14 jQuery
微信小程序仿抖音视频之整屏上下切换功能的实现代码
2020/05/24 Javascript
详解VUE中的插值( Interpolation)语法
2020/10/18 Javascript
[01:02:32]DOTA2-DPC中国联赛 正赛 iG vs PSG.LGD BO3 第二场 2月26日
2021/03/11 DOTA
python多重继承新算法C3介绍
2014/09/28 Python
SVM基本概念及Python实现代码
2017/12/27 Python
使用Python横向合并excel文件的实例
2018/12/11 Python
pycharm访问mysql数据库的方法步骤
2019/06/18 Python
Django model update的多种用法介绍
2020/03/28 Python
TensorFlow加载模型时出错的解决方式
2020/02/06 Python
Python常用外部指令执行代码实例
2020/11/05 Python
Topshop美国官网:英国快速时尚品牌
2019/05/16 全球购物
保加利亚运动鞋购物网站:SneakerStudio.bg
2020/12/23 全球购物
什么是.net
2015/08/03 面试题
英语专业学生个人求职信
2014/01/28 职场文书
项目总经理岗位职责
2014/02/14 职场文书
公安交警中队队长个人对照检查材料思想汇报
2014/10/05 职场文书
2019年市场部个人述职报告(三篇)
2019/10/23 职场文书
springboot @ConfigurationProperties和@PropertySource的区别
2021/06/11 Java/Android
能让Python提速超40倍的神器Cython详解
2021/06/24 Python
Mysql binlog日志文件过大的解决
2021/10/05 MySQL