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的Django框架中加载模版的方法
Jul 16 Python
python3实现读取chrome浏览器cookie
Jun 19 Python
Python之父谈Python的未来形式
Jul 01 Python
Python 如何访问外围作用域中的变量
Sep 11 Python
Python图像处理之直线和曲线的拟合与绘制【curve_fit()应用】
Dec 26 Python
详解python持久化文件读写
Apr 06 Python
python实现小球弹跳效果
May 10 Python
Django 配置多站点多域名的实现步骤
May 17 Python
Python+threading模块对单个接口进行并发测试
Jun 25 Python
Python调用Windows API函数编写录音机和音乐播放器功能
Jan 05 Python
python实现程序重启和系统重启方式
Apr 16 Python
IDLE下Python文件编辑和运行操作
Apr 25 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
在IIS上安装PHP4.0正式版
2006/10/09 PHP
PHP学习笔记 用户注册模块用户类以及验证码类
2011/09/20 PHP
PHP基础之运算符的使用方法
2013/04/28 PHP
强制PHP命令行脚本单进程运行的方法
2014/04/15 PHP
Thinkphp中import的几个用法详细介绍
2014/07/02 PHP
php通过strpos查找字符串出现位置的方法
2015/03/17 PHP
PHP图片水印类的封装
2017/07/06 PHP
深入研究PHP中的preg_replace和代码执行
2018/08/15 PHP
TP5框架实现的数据库备份功能示例
2020/04/05 PHP
jQuery生成asp.net服务器控件的代码
2010/02/04 Javascript
jquery.cvtooltip.js 基于jquery的气泡提示插件
2010/11/19 Javascript
JS+flash实现chrome和ie浏览器下同时可以复制粘贴
2013/09/22 Javascript
JavaScript控制按钮可用或不可用的方法
2015/04/03 Javascript
jquery显示loading图片直到网页加载完成的方法
2015/06/25 Javascript
Javascript设计模式理论与编程实战之简单工厂模式
2015/11/03 Javascript
深入探秘jquery瀑布流的实现
2016/01/30 Javascript
jQuery实现新闻播报滚动及淡入淡出效果示例
2018/03/23 jQuery
javascript创建元素和删除元素实例小结
2019/06/19 Javascript
微信小程序实现点击效果
2019/06/21 Javascript
js get和post请求实现代码解析
2020/02/06 Javascript
Python中if __name__ == '__main__'作用解析
2015/06/29 Python
python中set()函数简介及实例解析
2018/01/09 Python
Pycharm+django2.2+python3.6+MySQL实现简单的考试报名系统
2019/09/05 Python
Python数据相关系数矩阵和热力图轻松实现教程
2020/06/16 Python
10分钟理解CSS3 Grid布局
2018/12/20 HTML / CSS
HTML5 Canvas绘制圆点虚线实例
2015/01/01 HTML / CSS
浅谈HTML5 FileReader分布读取文件以及其方法简介
2017/11/09 HTML / CSS
华为旗下电子商务平台:华为商城
2016/08/06 全球购物
Rossignol金鸡美国官网:始于1907年法国百年雪具品牌
2019/03/06 全球购物
如何利用find命令查找文件
2015/02/07 面试题
洗煤厂厂长岗位职责
2014/01/03 职场文书
餐厅经理岗位职责范本
2014/02/17 职场文书
岗位职责说明书模板
2014/07/30 职场文书
小学校园广播稿(3篇)
2014/09/19 职场文书
公司搬迁通知
2015/04/20 职场文书
保护环境建议书作文500字
2015/09/14 职场文书