Python OpenCV对本地视频文件进行分帧保存的实例


Posted in Python onJanuary 08, 2019

如下所示:

# 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 OpenCV对本地视频文件进行分帧保存的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Django框架中render_to_response()函数的使用方法
Jul 16 Python
Python中列表元素转为数字的方法分析
Jun 14 Python
使用Python对MySQL数据操作
Apr 06 Python
正确理解python中的关键字“with”与上下文管理器
Apr 21 Python
python分治法求二维数组局部峰值方法
Apr 03 Python
python实现决策树分类(2)
Aug 30 Python
python3 实现对图片进行局部切割的方法
Dec 05 Python
总结Python图形用户界面和游戏开发知识点
May 22 Python
python标识符命名规范原理解析
Jan 10 Python
pytorch中图像的数据格式实例
Feb 11 Python
pycharm 中mark directory as exclude的用法详解
Feb 14 Python
10个示例带你掌握python中的元组
Nov 23 Python
python-opencv 将连续图片写成视频格式的方法
Jan 08 #Python
对Python+opencv将图片生成视频的实例详解
Jan 08 #Python
Python中的heapq模块源码详析
Jan 08 #Python
python使用PIL模块获取图片像素点的方法
Jan 08 #Python
python 获取图片分辨率的方法
Jan 08 #Python
Python 处理图片像素点的实例
Jan 08 #Python
Python实现查找最小的k个数示例【两种解法】
Jan 08 #Python
You might like
php中禁止单个IP与ip段访问的代码小结
2012/07/04 PHP
深入php多态的实现详解
2013/06/09 PHP
php解析html类库simple_html_dom(详细介绍)
2013/07/05 PHP
详细解读PHP的Yii框架中登陆功能的实现
2015/08/21 PHP
php+mysql+jquery实现简易的检索自动补全提示功能
2017/04/15 PHP
php生出随机字符串
2017/07/06 PHP
Yii框架日志操作图文与实例详解
2019/09/09 PHP
php7 list()、session及其他模块的修改实例分析
2020/05/25 PHP
javascript 常用关键字列表集合
2007/12/04 Javascript
Array的push与unshift方法性能比较分析
2011/03/05 Javascript
js控制web打印(局部打印)方法整理
2013/05/29 Javascript
js css后面所带参数含义介绍
2013/08/18 Javascript
jQuery使用ajax跨域获取数据的简单实例
2016/05/18 Javascript
JavaScript类的写法
2016/09/17 Javascript
微信小程序 获取微信OpenId详解及实例代码
2016/10/31 Javascript
javascript入门之string对象【新手必看】
2016/11/22 Javascript
Angular异步变同步处理方法
2018/08/13 Javascript
JavaScript简单实现的仿微博留言功能示例
2019/01/17 Javascript
浅谈ECMAScript 中的Array类型
2019/06/10 Javascript
jquery实现直播弹幕效果
2019/11/28 jQuery
Vue-axios-post数据后端接不到问题解决
2020/01/09 Javascript
一文秒懂nodejs中的异步编程
2021/01/28 NodeJs
详解TensorFlow在windows上安装与简单示例
2018/03/05 Python
对python .txt文件读取及数据处理方法总结
2018/04/23 Python
python 将大文件切分为多个小文件的实例
2019/01/14 Python
PySide和PyQt加载ui文件的两种方法
2019/02/27 Python
调试Django时打印SQL语句的日志代码实例
2019/09/12 Python
Python分割训练集和测试集的方法示例
2019/09/19 Python
Python学习之os模块及用法
2020/06/03 Python
html5 canvas绘制矩形和圆形的实例代码
2016/06/16 HTML / CSS
Merrell迈乐澳大利亚网站:购买户外登山鞋
2017/05/28 全球购物
质检部职责
2013/12/28 职场文书
给老婆的检讨书1000字
2015/01/01 职场文书
家属慰问信
2015/02/14 职场文书
同学毕业留言寄语
2015/02/27 职场文书
Python实现单例模式的5种方法
2021/06/15 Python