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 相关文章推荐
Python制作爬虫采集小说
Oct 25 Python
python中pygame针对游戏窗口的显示方法实例分析(附源码)
Nov 11 Python
详解Python中的文件操作
Aug 28 Python
Python 基于Twisted框架的文件夹网络传输源码
Aug 28 Python
Python 多线程Threading初学教程
Aug 22 Python
python实现机器人行走效果
Jan 29 Python
python实现梯度下降算法
Mar 24 Python
python+selenium 定位到元素,无法点击的解决方法
Jan 30 Python
详解python-图像处理(映射变换)
Mar 22 Python
Pycharm连接远程服务器并实现远程调试的实现
Aug 02 Python
Django在admin后台集成TinyMCE富文本编辑器的例子
Aug 09 Python
Python 操作 MySQL数据库
Sep 18 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
基于MySQL分区性能的详细介绍
2013/05/02 PHP
Apache无法自动跳转却显示目录的解决方法
2020/11/30 PHP
详解php协程知识点
2018/09/21 PHP
PHP实现微信提现功能(微信商城)
2019/11/21 PHP
JQuery1.4+ Ajax IE8 内存泄漏问题
2010/10/15 Javascript
jQuery UI的Dialog无法提交问题的解决方法
2011/01/11 Javascript
IE8的JavaScript点击事件(onclick)不兼容的解决方法
2013/11/22 Javascript
标题过长使用javascript按字节截取字符串
2014/04/24 Javascript
javascript 处理null及null值示例
2014/06/09 Javascript
JavaScript实现当网页加载完成后执行指定函数的方法
2015/03/21 Javascript
javascript每日必学之封装
2016/02/23 Javascript
js实现ctrl+v粘贴上传图片(兼容chrome、firefox、ie11)
2016/03/09 Javascript
Wireshark基本介绍和学习TCP三次握手
2016/08/15 Javascript
关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)
2016/12/14 Javascript
JQuery获取鼠标进入和离开容器的方向
2016/12/29 Javascript
NodeJS实现图片上传代码(Express)
2017/06/30 NodeJs
基于Angular中ng-controller父子级嵌套的相关属性详解
2018/10/08 Javascript
解决vue init webpack 下载依赖卡住不动的问题
2020/11/09 Javascript
javascript中layim之查找好友查找群组
2021/02/06 Javascript
一个检测OpenSSL心脏出血漏洞的Python脚本分享
2014/04/10 Python
Python读取键盘输入的2种方法
2015/06/16 Python
Python 读取某个目录下所有的文件实例
2018/06/23 Python
python3+selenium实现126邮箱登陆并发送邮件功能
2019/01/23 Python
Python基于Logistic回归建模计算某银行在降低贷款拖欠率的数据示例
2019/01/23 Python
pytorch 预训练层的使用方法
2019/08/20 Python
如何关掉pycharm中的python console(图解)
2019/10/31 Python
python 动态绘制爱心的示例
2020/09/27 Python
python实现猜拳游戏项目
2020/11/30 Python
python编写扎金花小程序的实例代码
2021/02/23 Python
高山背包:High Sierra
2017/11/23 全球购物
介绍一下Mysql的存储引擎
2015/02/12 面试题
重点工程汇报材料
2014/08/27 职场文书
清明节文明祭祀倡议书
2015/04/28 职场文书
Nginx安装完成没有生成sbin目录的解决方法
2021/03/31 Servers
深入浅析Redis 集群伸缩原理
2021/05/15 Redis
大脑的记忆过程在做数据压缩,不同图形也有共同的记忆格式
2022/04/29 数码科技