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编写一个简单的Lisp解释器的教程
Apr 03 Python
搭建Python的Django框架环境并建立和运行第一个App的教程
Jul 02 Python
基于python实现在excel中读取与生成随机数写入excel中
Jan 04 Python
Python编程实现从字典中提取子集的方法分析
Feb 09 Python
Python基于最小二乘法实现曲线拟合示例
Jun 14 Python
Python饼状图的绘制实例
Jan 15 Python
详解python校验SQL脚本命名规则
Mar 22 Python
python 定时器每天就执行一次的实现代码
Aug 14 Python
Python函数装饰器原理与用法详解
Aug 16 Python
python实现小程序推送页面收录脚本
Apr 20 Python
如何在mac下配置python虚拟环境
Jul 06 Python
Python爬虫实现selenium处理iframe作用域问题
Jan 27 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
全国FM电台频率大全 - 26 西藏自治区
2020/03/11 无线电
PHP Array交叉表实现代码
2010/08/05 PHP
PHP 中关于ord($str)>0x80的详细说明
2012/09/23 PHP
php基于数组函数实现关联表的编辑操作示例
2017/07/04 PHP
Jquery网页出现的乱码问题的三种解决方法
2013/06/30 Javascript
客户端js判断文件类型和文件大小即限制上传大小
2013/11/20 Javascript
使用js dom和jquery分别实现简单增删改
2014/09/11 Javascript
js简单实现调整网页字体大小的方法
2016/07/23 Javascript
javascript 开发之网页兼容各种浏览器
2017/09/28 Javascript
基于Node.js实现压缩和解压缩的方法
2018/02/13 Javascript
javascript原生封装一个淡入淡出效果的函数测试实例代码
2018/03/19 Javascript
[01:42]辉夜杯战队访谈宣传片—FANTUAN
2015/12/25 DOTA
基于Python实现的百度贴吧网络爬虫实例
2015/04/17 Python
解决Python requests 报错方法集锦
2017/03/19 Python
python常用函数与用法示例
2019/07/02 Python
python取均匀不重复的随机数方式
2019/11/27 Python
Python实现FLV视频拼接功能
2020/01/21 Python
pycharm 关掉syntax检查操作
2020/06/09 Python
用HTML5实现网站在windows8中贴靠的方法
2013/04/21 HTML / CSS
阻止移动设备(手机、pad)浏览器双击放大网页的方法
2014/06/03 HTML / CSS
新加坡交友网站:be2新加坡
2019/04/10 全球购物
投标担保书范文
2014/04/02 职场文书
感恩之星事迹材料
2014/05/03 职场文书
党员查摆剖析材料
2014/10/10 职场文书
个人整改方案范文
2014/10/25 职场文书
个人年终总结结尾
2015/03/06 职场文书
总经理岗位职责范本
2015/04/01 职场文书
大学生村官工作总结2015
2015/04/09 职场文书
社区艾滋病宣传活动总结
2015/05/07 职场文书
初一英语教学反思
2016/02/15 职场文书
八年级作文之友情
2019/11/25 职场文书
python实现网络五子棋
2021/04/11 Python
Python标准库pathlib操作目录和文件
2021/11/20 Python
MySQL之MyISAM存储引擎的非聚簇索引详解
2022/03/03 MySQL
Linux下搭建SFTP服务器的命令详解
2022/06/25 Servers
Nginx文件已经存在全局反向代理问题排查记录
2022/07/15 Servers