Python OpenCV实现视频分帧


Posted in Python onJune 01, 2019

本文实例为大家分享了Python OpenCV实现视频分帧的具体代码,供大家参考,具体内容如下

# coding=utf-8

import os
import cv2

videos_src_path = "/home/wgp/视频/"
video_formats = [".MP4", ".MOV"]
frames_save_path = "/home/wgp/视频/"
width = 320
height = 240
time_interval = 50


def video2frame(video_src_path, formats, frame_save_path, frame_width, frame_height, interval):
 """
 将视频按固定间隔读取写入图片
 :param video_src_path: 视频存放路径
 :param formats: 包含的所有视频格式
 :param frame_save_path: 保存路径
 :param frame_width: 保存帧宽
 :param frame_height: 保存帧高
 :param interval: 保存帧间隔
 :return: 帧图片
 """
 videos = os.listdir(video_src_path)

 def filter_format(x, all_formats):
 if x[-4:] in all_formats:
  return True
 else:
  return False

 videos = filter(lambda x: filter_format(x, formats), videos)

 for each_video in videos:
 print "正在读取视频:", each_video

 each_video_name = each_video[:-4]
 os.mkdir(frame_save_path + each_video_name)
 each_video_save_full_path = os.path.join(frame_save_path, each_video_name) + "/"

 each_video_full_path = os.path.join(video_src_path, each_video)

 cap = cv2.VideoCapture(each_video_full_path)
 frame_index = 0
 frame_count = 0
 if cap.isOpened():
  success = True
 else:
  success = False
  print("读取失败!")

 while(success):
  success, frame = cap.read()
  print "---> 正在读取第%d帧:" % frame_index, success

  if frame_index % interval == 0:
  resize_frame = cv2.resize(frame, (frame_width, frame_height), interpolation=cv2.INTER_AREA)
  # cv2.imwrite(each_video_save_full_path + each_video_name + "_%d.jpg" % frame_index, resize_frame)
  cv2.imwrite(each_video_save_full_path + "%d.jpg" % frame_count, resize_frame)
  frame_count += 1

  frame_index += 1

 cap.release()


if __name__ == '__main__':
 video2frame(videos_src_path, video_formats, frames_save_path, width, height, time_interval)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python自动化测试工具Splinter简介和使用实例
May 13 Python
9种python web 程序的部署方式小结
Jun 30 Python
Python字符串转换成浮点数函数分享
Jul 24 Python
分享几道你可能遇到的python面试题
Jul 24 Python
python3+PyQt5实现柱状图
Apr 24 Python
Python3读取Excel数据存入MySQL的方法
May 04 Python
Django后端接收嵌套Json数据及解析详解
Jul 17 Python
python编写猜数字小游戏
Oct 06 Python
关于windows下Tensorflow和pytorch安装教程
Feb 04 Python
python标准库OS模块详解
Mar 10 Python
面向新手解析python Beautiful Soup基本用法
Jul 11 Python
Python实现8种常用抽样方法
Jun 27 Python
python的set处理二维数组转一维数组的方法示例
May 31 #Python
python整合ffmpeg实现视频文件的批量转换
May 31 #Python
python自动发邮件总结及实例说明【推荐】
May 31 #Python
python实现视频分帧效果
May 31 #Python
使用Python实现跳帧截取视频帧
May 31 #Python
python tools实现视频的每一帧提取并保存
Mar 20 #Python
Python从list类型、range()序列简单认识类(class)【可迭代】
May 31 #Python
You might like
PHP 变量的定义方法
2010/01/26 PHP
整理的9个实用的PHP库简介和下载
2010/11/09 PHP
yii2实现分页,带搜索的分页功能示例
2017/01/07 PHP
PHP简单留言本功能实现代码
2017/06/09 PHP
gearman中任务的优先级和返回状态实例分析
2020/02/27 PHP
JavaScript 替换Html标签实现代码
2009/10/14 Javascript
js使用for循环与innerHTML获取选中tr下td值
2014/09/26 Javascript
JavaScript 作用域链解析
2014/11/13 Javascript
JS获得选取checkbox整行数据的方法
2015/01/28 Javascript
jQuery DateTimePicker 日期和时间插件示例
2017/01/22 Javascript
js获取地址栏中传递的参数(两种方法)
2017/02/08 Javascript
javascript常用的设计模式
2017/02/09 Javascript
基于JavaScript实现瀑布流效果
2017/03/29 Javascript
knockoutjs模板实现树形结构列表
2017/07/31 Javascript
vue中的$emit 与$on父子组件与兄弟组件的之间通信方式
2018/05/13 Javascript
JS 音频可视化插件Wavesurfer.js的使用教程
2018/10/31 Javascript
详解微信小程序scroll-view横向滚动的实践踩坑及隐藏其滚动条的实现
2019/03/14 Javascript
JQuery获取元素尺寸、位置及页面滚动事件应用示例
2019/05/14 jQuery
微信小程序仿淘宝热搜词在搜索框中轮播功能
2020/01/21 Javascript
[24:42]VP vs TNC Supermajor小组赛B组 BO3 第三场 6.2
2018/06/03 DOTA
利用Python脚本实现ping百度和google的方法
2017/01/24 Python
利用python模拟sql语句对员工表格进行增删改查
2017/07/05 Python
浅谈Python实现贪心算法与活动安排问题
2017/12/19 Python
Pandas Shift函数的基础入门学习笔记
2018/11/16 Python
python数据持久存储 pickle模块的基本使用方法解析
2019/08/30 Python
python函数调用,循环,列表复制实例
2020/05/03 Python
用python实现名片管理系统
2020/06/18 Python
英国珠宝和手表专家:Pleasance & Harper
2020/10/21 全球购物
我有一个char * 型指针正巧指向一些int 型变量, 我想跳过它们。 为什么如下的代码((int *)p)++; 不行?
2013/05/09 面试题
公司出纳岗位职责
2013/12/07 职场文书
村居抓节水倡议书
2014/05/19 职场文书
小学生感恩父母演讲稿
2014/08/28 职场文书
2014年教师学期工作总结
2014/11/08 职场文书
小学2016年“我们的节日·重阳节”活动总结
2016/04/01 职场文书
MySQL去除重叠时间求时间差和的实现
2021/08/23 MySQL
清空 Oracle 安装记录并重新安装
2022/04/26 Oracle