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 字典(Dictionary)操作详解
Mar 11 Python
python根据文件大小打log日志
Oct 09 Python
在Python中使用lambda高效操作列表的教程
Apr 24 Python
python输出当前目录下index.html文件路径的方法
Apr 28 Python
Windows 7下Python Web环境搭建图文教程
Mar 20 Python
Python开发虚拟环境使用virtualenvwrapper的搭建步骤教程图解
Sep 19 Python
pandas取出重复数据的方法
Jul 04 Python
flask应用部署到服务器的方法
Jul 12 Python
解决Pytorch 加载训练好的模型 遇到的error问题
Jan 10 Python
python使用for...else跳出双层嵌套循环的方法实例
May 17 Python
Spy++的使用方法及下载教程
Jan 29 Python
彻底弄懂Python中的回调函数(callback)
Jun 25 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
用PHPdig打造属于你自己的Google[图文教程]
2007/02/14 PHP
php 友好URL的实现(吐血推荐)
2008/10/04 PHP
PHP5下$_SERVER变量不再受magic_quotes_gpc保护的弥补方法
2012/10/31 PHP
php定时计划任务与fsockopen持续进程实例
2014/05/23 PHP
PHP PDOStatement::setAttribute讲解
2019/02/01 PHP
jquery uaMatch源代码
2011/02/14 Javascript
javascript+xml实现简单图片轮换(只支持IE)
2012/12/23 Javascript
js中的setInterval和setTimeout使用实例
2014/05/09 Javascript
js中的getAttribute方法使用示例
2014/08/01 Javascript
js操作滚动条事件实例
2015/01/29 Javascript
浅谈javascript中this在事件中的应用
2015/02/15 Javascript
学习JavaScript设计模式(继承)
2015/11/26 Javascript
jquery mobile移动端幻灯片滑动切换效果
2020/04/15 Javascript
基于jQuery实现瀑布流页面
2017/04/11 jQuery
Vue官网todoMVC示例代码
2018/01/29 Javascript
Vue实现动态创建和删除数据的方法
2018/03/17 Javascript
vue自定义js图片碎片轮播图切换效果的实现代码
2019/04/28 Javascript
利用Python中的mock库对Python代码进行模拟测试
2015/04/16 Python
Python实现约瑟夫环问题的方法
2016/05/03 Python
python 实现多线程下载视频的代码
2019/11/15 Python
python torch.utils.data.DataLoader使用方法
2020/04/02 Python
Python Merge函数原理及用法解析
2020/09/16 Python
python 读取、写入txt文件的示例
2020/09/27 Python
CSS3 rgb and rgba(透明色)的使用详解
2020/09/25 HTML / CSS
html2 canvas生成清晰的图片实现打印功能
2019/09/23 HTML / CSS
七年级数学教学反思
2014/01/22 职场文书
学生干部学习的自我评价
2014/02/18 职场文书
初三班主任寄语大全
2014/04/04 职场文书
保证书格式
2015/01/16 职场文书
社区工作者个人总结
2015/02/28 职场文书
工作感言一句话
2015/08/01 职场文书
职业生涯规划书之大学四年
2019/08/07 职场文书
2019事业单位个人工作总结范文
2019/08/26 职场文书
扩展多台相同的Web服务器
2021/04/01 Servers
详解python中[-1]、[:-1]、[::-1]、[n::-1]使用方法
2021/04/25 Python
PHP实现两种排课方式
2021/06/26 PHP