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 相关文章推荐
以Flask为例讲解Python的框架的使用方法
Apr 29 Python
Python 正则表达式入门(中级篇)
Dec 07 Python
python去除字符串中的换行符
Oct 11 Python
Python3简单实现串口通信的方法
Jun 12 Python
如何通过雪花算法用Python实现一个简单的发号器
Jul 03 Python
Python代码太长换行的实现
Jul 05 Python
python 画出使用分类器得到的决策边界
Aug 21 Python
Python利用多线程同步锁实现多窗口订票系统(推荐)
Dec 22 Python
Python读取YAML文件过程详解
Dec 30 Python
Python 将 QQ 好友头像生成祝福语的实现代码
May 03 Python
python3 使用openpyxl将mysql数据写入xlsx的操作
May 15 Python
使用pandas读取表格数据并进行单行数据拼接的详细教程
Mar 03 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
简单的页面缓冲技术
2006/10/09 PHP
PHP 页面跳转到另一个页面的多种方法方法总结
2009/07/07 PHP
基于PHP输出缓存(output_buffering)的深入理解
2013/06/13 PHP
PHP获取数组中重复最多的元素的实现方法
2014/11/11 PHP
微信公众号实现扫码获取微信用户信息(网页授权)
2019/04/09 PHP
js判断浏览器的比较全的代码
2007/02/13 Javascript
用jscript启动sqlserver
2007/06/21 Javascript
JavaScript Sort 表格排序
2009/10/31 Javascript
JavaScript在IE和Firefox浏览器下的7个差异兼容写法小结
2010/06/18 Javascript
基于JQUERY的多级联动代码
2012/01/24 Javascript
JavaScript中json使用自己总结
2013/08/13 Javascript
JQuery插入DOM节点的方法
2015/06/11 Javascript
JavaScript中的对象和原型(一)
2016/08/12 Javascript
Vue.js双向绑定实现原理详解
2016/12/22 Javascript
AngularJS使用带属性值的ng-app指令实现自定义模块自动加载的方法
2017/01/04 Javascript
js实现多个倒计时并行 js拼团倒计时
2019/02/25 Javascript
WEEX环境搭建与入门详解
2019/10/16 Javascript
python抓取网页时字符集转换问题处理方案分享
2014/06/19 Python
如何在Python中编写并发程序
2016/02/27 Python
Flask框架中密码的加盐哈希加密和验证功能的用法详解
2016/06/07 Python
使用Kivy将python程序打包为apk文件
2017/07/29 Python
让Python更加充分的使用Sqlite3
2017/12/11 Python
关于反爬虫的一些简单总结
2017/12/13 Python
Python读取Excel表格,并同时画折线图和柱状图的方法
2018/10/14 Python
python多进程并行代码实例
2019/09/30 Python
Django自定义用户表+自定义admin后台中的字段实例
2019/11/18 Python
matplotlib.pyplot.matshow 矩阵可视化实例
2020/06/16 Python
什么是虚拟内存?虚拟内存有什么优势?
2012/02/19 面试题
介绍JAVA 中的Collection FrameWork(及如何写自己的数据结构)
2014/10/31 面试题
工商学院毕业生个人自我评价
2013/09/19 职场文书
美国留学经济担保书
2014/05/20 职场文书
2016年企业安全生产月活动总结
2016/04/06 职场文书
JavaWeb Servlet实现网页登录功能
2021/07/04 Java/Android
MySQL中的隐藏列的具体查看
2021/09/04 MySQL
JavaScript高级程序设计之基本引用类型
2021/11/17 Javascript
python数字图像处理实现图像的形变与缩放
2022/06/28 Python