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单元测试框架unittest使用方法讲解
Apr 13 Python
好用的Python编辑器WingIDE的使用经验总结
Aug 31 Python
unittest+coverage单元测试代码覆盖操作实例详解
Apr 04 Python
Python3.5 创建文件的简单实例
Apr 26 Python
在Pycharm中项目解释器与环境变量的设置方法
Oct 29 Python
python打包生成的exe文件运行时提示缺少模块的解决方法
Oct 31 Python
PyTorch 1.0 正式版已经发布了
Dec 13 Python
python 实现UTC时间加减的方法
Dec 31 Python
深入浅析python的第三方库pandas
Feb 13 Python
如何理解python面向对象编程
Jun 01 Python
分享一个python的aes加密代码
Dec 22 Python
python中使用 unittest.TestCase单元测试的用例详解
Aug 30 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实现的下载远程图片自定义函数分享
2015/01/28 PHP
PHP语法小结之基础和变量
2015/11/22 PHP
PHP基于回溯算法解决n皇后问题的方法示例
2017/11/07 PHP
JavaScript中的Document文档对象
2008/01/16 Javascript
最新28个很棒的jQuery 教程
2011/05/28 Javascript
Jquery实现图片左右自动滚动示例
2013/09/25 Javascript
Vue实现virtual-dom的原理简析
2017/07/10 Javascript
vue用递归组件写树形控件的实例代码
2018/07/19 Javascript
详解ES6 Promise对象then方法链式调用
2018/10/20 Javascript
常见的浏览器存储方式(cookie、localStorage、sessionStorage)
2019/05/07 Javascript
vue 地区选择器v-distpicker的常用功能
2019/07/23 Javascript
vue+element项目中过滤输入框特殊字符小结
2019/08/07 Javascript
python利用OpenCV2实现人脸检测
2020/04/16 Python
TensorFlow实现非线性支持向量机的实现方法
2018/04/28 Python
创建pycharm的自定义python模板方法
2018/05/23 Python
使用python对文件中的单词进行提取的方法示例
2018/12/21 Python
详解Python的数据库操作(pymysql)
2019/04/04 Python
树莓派动作捕捉抓拍存储图像脚本
2019/06/22 Python
Python异常模块traceback用法实例分析
2019/10/22 Python
python和pywin32实现窗口查找、遍历和点击的示例代码
2020/04/01 Python
在jupyter notebook中调用.ipynb文件方式
2020/04/14 Python
Python使用Numpy模块读取文件并绘制图片
2020/05/13 Python
CSS3教程(2):网页边框半径和网页圆角
2009/04/02 HTML / CSS
推荐10个CSS3 制作的创意下拉菜单效果
2014/02/11 HTML / CSS
美国女孩洋娃娃店:American Girl
2017/10/24 全球购物
运动服饰每月订阅盒:Ellie
2018/04/29 全球购物
党课学习思想汇报
2014/01/02 职场文书
九年级数学教学反思
2014/02/02 职场文书
书香校园活动方案
2014/02/28 职场文书
班级活动总结格式
2014/08/30 职场文书
优秀共产党员事迹材料
2014/12/18 职场文书
给上级领导的感谢信
2015/01/22 职场文书
2015年依法治校工作总结
2015/07/27 职场文书
爱护公物主题班会
2015/08/17 职场文书
如何利用python和DOS获取wifi密码
2021/03/31 Python
webpack的移动端适配方案小结
2021/07/25 Javascript