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实现的数据结构与算法之基本搜索详解
Apr 22 Python
python简单的函数定义和用法实例
May 07 Python
Python实现SVN的目录周期性备份实例
Jul 17 Python
详解Django解决ajax跨域访问问题
Aug 24 Python
pyqt远程批量执行Linux命令程序的方法
Feb 14 Python
Python3标准库总结
Feb 19 Python
django admin.py 外键,反向查询的实例
Jul 26 Python
tensorflow多维张量计算实例
Feb 11 Python
Python基于进程池实现多进程过程解析
Apr 30 Python
pyCharm 设置调试输出窗口中文显示方式(字符码转换)
Jun 09 Python
分析Python list操作为什么会错误
Nov 17 Python
Python matplotlib安装以及实现简单曲线的绘制
Apr 26 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 Document 代码注释规范
2009/04/13 PHP
ThinkPHP的Widget扩展实例
2014/06/19 PHP
golang与PHP输出excel示例
2016/07/22 PHP
PHP基于PDO调用sqlserver存储过程通用方法【基于Yii框架】
2017/10/07 PHP
php中try catch捕获异常实例详解
2020/08/06 PHP
Thinkphp5+Redis实现商品秒杀代码实例讲解
2020/12/29 PHP
js更优雅的兼容
2010/08/12 Javascript
jQuery1.6 使用方法一
2011/11/23 Javascript
js键盘上下左右键怎么触发function(实例讲解)
2013/12/14 Javascript
在jquery中combobox多选的不兼容问题总结
2013/12/24 Javascript
wap图片滚动特效无css3元素纯js脚本编写
2014/08/22 Javascript
JavaScript通过select动态更换图片的方法
2015/03/23 Javascript
js图片卷帘门导航菜单特效代码分享
2015/09/10 Javascript
JQuery实现级联下拉框效果实例讲解
2015/09/17 Javascript
详解javascript实现瀑布流绝对式布局
2016/01/29 Javascript
js仿搜狐视频记录片列表展示效果
2020/05/30 Javascript
JavaScript树的深度优先遍历和广度优先遍历算法示例
2018/07/30 Javascript
Vue的watch和computed方法的使用及区别介绍
2018/09/06 Javascript
vue-cli 3 全局过滤器的实例代码详解
2019/06/03 Javascript
解决vue中el-tab-pane切换的问题
2020/07/19 Javascript
关于element-ui表单中限制输入纯数字的解决方式
2020/09/08 Javascript
原生js+css实现tab切换功能
2020/09/17 Javascript
微信小程序canvas实现签名功能
2021/01/19 Javascript
复习Python中的字符串知识点
2015/04/14 Python
Python实现二叉堆
2016/02/03 Python
python3.4控制用户输入与输出的方法
2018/10/17 Python
Django实现auth模块下的登录注册与注销功能
2019/10/10 Python
tensorflow的ckpt及pb模型持久化方式及转化详解
2020/02/12 Python
为什么是 Python -m
2020/06/19 Python
迎八一活动主题
2014/01/31 职场文书
十一酒店活动方案
2014/02/20 职场文书
计算机毕业生求职信
2014/06/10 职场文书
承兑汇票转让证明怎么写?
2014/11/30 职场文书
2015年超市工作总结
2015/04/09 职场文书
爱岗敬业事迹材料
2019/06/20 职场文书
Nginx开源可视化配置工具NginxConfig使用教程
2022/06/21 Servers