Python将视频或者动态图gif逐帧保存为图片的方法


Posted in Python onSeptember 10, 2019

本文是基于opencv将视频和动态图gif保存为图像帧。可以根据输入视频格式的不同,修改第21行。

       对动图的处理不同于视频,PIL库包含对图像序列的基本支持。当打开gif图像时,自动加载第一帧。当图像读取完成时,抛出EOFError异常。我们可以使用seek()与tell()函数完成图像帧的读取。

       本代码的前部分是对文件的读取。数据集文件结构如下:

|——datasets
  |——action1
   action1_1.gif
   action1_2.gif
   ......
  |——action2
   action2_1.gif
   action2_2.gif
   ......
import cv2
import os
from PIL import Image
video_path = 'PATH_ROOT/datasets/' #视频或gif图像的路径
save_path = 'PATH_ROOT/save/' #保存帧的路径
action_list = os.listdir(video_path)
for action in action_list:
 if not os.path.exists(save_path+action):
  os.mkdir(save_path+action)
 video_list = os.listdir(video_path+action)
 for video in video_list:
  prefix = video.split('.')[0]
  if not os.path.exists(save_path+action+'/'+prefix):
   os.mkdir(save_path+action+'/'+prefix)
  save_name = save_path + action + '/' + prefix + '/'
  video_name = video_path+action+'/'+video
  name = video_name.split('.')[1]
  if name == "avi":
   cap = cv2.VideoCapture(video_name)
   fps = int(cap.get(cv2.CAP_PROP_FRAME_COUNT))
   fps_count = 0
   for i in range(fps):
    ret, frame = cap.read()
    if ret:
     cv2.imwrite(save_name + str(10000 + fps_count) + '.jpg', frame)
     fps_count += 1
  if name == "gif":
   im = Image.open(video_name)
   #当打开一个序列文件时,PIL库自动加载第一帧。
   #可以使用seek()函数和tell()函数在不同帧之间移动。实现保存
   try:
    while True:
     current = im.tell()
     #为了保存为jpg格式,需要转化。否则可以保存为png
     img = im.convert('RGB') 
     img.save(save_name+'/'+str(10000+current)+'.jpg')
     im.seek(current + 1)
   except EOFError:
    pass

知识点扩展:python如何将gif动态图转化成每帧图片

from PIL import Image
import os
gifFileName = 'test.gif'
#使用Image模块的open()方法打开gif动态图像时,默认是第一帧
im = Image.open(gifFileName)
pngDir = gifFileName[:-4]
#创建存放每帧图片的文件夹
os.mkdir(pngDir)
try:
 while True:
  #保存当前帧图片
  current = im.tell()
  im.save(pngDir+'/'+str(current)+'.png')
  #获取下一帧图片
  im.seek(current+1)
except EOFError:
  pass

总结

以上所述是小编给大家介绍的Python将视频或者动态图gif逐帧保存为图片的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Python 相关文章推荐
解决Python 中英文混输格式对齐的问题
Jul 16 Python
python实现Zabbix-API监控
Sep 17 Python
python实现感知器算法(批处理)
Jan 18 Python
python binascii 进制转换实例
Jun 12 Python
Python 实现一个手机号码获取妹子名字的功能
Sep 25 Python
PyCharm导入python项目并配置虚拟环境的教程详解
Oct 13 Python
python元组和字典的内建函数实例详解
Oct 22 Python
python实现PCA降维的示例详解
Feb 24 Python
使用Python对Dicom文件进行读取与写入的实现
Apr 20 Python
Python生成器传参数及返回值原理解析
Jul 22 Python
Python 使用Opencv实现目标检测与识别的示例代码
Sep 08 Python
pytorch常用数据类型所占字节数对照表一览
May 17 Python
python使用PIL和matplotlib获取图片像素点并合并解析
Sep 10 #Python
Python字符串中添加、插入特定字符的方法
Sep 10 #Python
详解python uiautomator2 watcher的使用方法
Sep 09 #Python
一行Python代码制作动态二维码的实现
Sep 09 #Python
python制作英语翻译小工具代码实例
Sep 09 #Python
Python pandas.DataFrame 找出有空值的行
Sep 09 #Python
Python制作词云图代码实例
Sep 09 #Python
You might like
PHP错误抑制符(@)导致引用传参失败Bug的分析
2011/05/02 PHP
php使用mysqli向数据库添加数据的方法
2015/03/20 PHP
通过php动态传数据到highcharts
2017/04/05 PHP
ThinkPHP框架表单验证操作方法
2017/07/19 PHP
PHP异步进程助手async-helper
2018/02/05 PHP
Ajax,UTF-8还是GB2312 eval 还是execScript
2008/11/13 Javascript
Web开发者必备的12款超赞jQuery插件
2010/12/03 Javascript
jquery mobile实现拨打电话功能的几种方法
2013/08/05 Javascript
鼠标滑在标题上显示图片的JS代码
2013/11/19 Javascript
JQuery创建DOM节点的方法
2015/06/11 Javascript
14款经典网页图片和文字特效的jQuery插件-前端开发必备
2015/08/25 Javascript
ng-options和ng-checked在表单中的高级运用(推荐)
2017/01/21 Javascript
详解使用fetch发送post请求时的参数处理
2017/04/05 Javascript
详解Koa中更方便简单发送响应的方式
2018/07/20 Javascript
[02:00]最后,我终于出了辉耀
2018/03/27 DOTA
python实现360的字符显示界面
2014/02/21 Python
Python命名空间详解
2014/08/18 Python
Python数字图像处理之霍夫线变换实现详解
2018/01/12 Python
Python 用三行代码提取PDF表格数据
2019/10/13 Python
Python Django框架防御CSRF攻击的方法分析
2019/10/18 Python
Django admin 实现search_fields精确查询实例
2020/03/30 Python
利用Python函数实现一个万历表完整示例
2021/01/23 Python
Python爬虫实例之2021猫眼票房字体加密反爬策略(粗略版)
2021/02/22 Python
HTML5中图片之间的缝隙完美解决方法
2017/07/07 HTML / CSS
泰国办公用品购物网站:OfficeMate
2018/02/04 全球购物
家得宝墨西哥官网:The Home Depot墨西哥
2019/11/18 全球购物
无故旷工检讨书
2014/01/26 职场文书
《纸船和风筝》教学反思
2014/02/15 职场文书
汽车销售员如何做职业生涯规划
2014/02/16 职场文书
小学生国旗下演讲稿
2014/04/25 职场文书
党的群众路线领导班子整改方案
2014/09/27 职场文书
2014年作风建设心得体会
2014/10/22 职场文书
公务员检讨书
2014/11/01 职场文书
大学开学感言
2015/08/01 职场文书
初中团委工作总结
2015/08/13 职场文书
2016年党员创先争优公开承诺书
2016/03/25 职场文书