python学opencv|读取视频(二)制作gif

【1】引言

前述已经完成了图像和视频的读取学习,本次课学习制作gif格式动图。

【2】教程

实际上想制作gif格式动图是一个顺理成章的操作,完成了图像和视频的处理,那就自然而然会对gif的处理也产生兴趣。

不过在opencv官网、matplotlib官网和numpy官网,都没有找到**视频生成gif动图函数imageio()**的说明,所以就只好百度和CSDN搜索。

幸好找到了官网地址,给大家分享:Welcome to imageio's documentation! --- imageio 2.36.1 documentation

不过当前对官网还没有很好地理解,所以暂不涉及对官网文档的解读。

接下来重点解读imageio()转化视频为gif的操作。

python 复制代码
import numpy as np #引入计算模块
import cv2 as cv #引入opencv模块
from imageio import mimsave #引入imageio图片处理模块

cap = cv.VideoCapture('56789.mp4')
# 声明编码器和创建 VideoWrite 对象
fourcc = cv.VideoWriter_fourcc('M','J','P','G')#解码器选择

out = cv.VideoWriter('56789-100.mp4', fourcc, 200.0, (720,1280)) #保存为MP4格式
grays=[] #定义一个空矩阵
while (cap.isOpened()): #自定义函数
    ret, frame = cap.read()
    if ret==True:
        out.write(frame) #写入视频
        cv.imshow('frame', frame) #在屏幕上播放视频
        grays.append(frame) #视频存入grays矩阵
        if cv.waitKey(1) & 0xFF == ord('q'):
            break
    else:
        break
mimsave('56789-100.gif',grays,fps=160,palettesize=256) #保存视频为gif格式,帧数为160,色彩种类数256
# 释放已经完成的工作
cap.release()
out.release()
cv.destroyAllWindows()

这里相对上一课的变化为:

【a】引入了imageio模块对视频格式进行转化:

复制代码
from imageio import mimsave #引入imageio图片处理模块

【b】预定义一个空矩阵看来存储视频:

复制代码
grays=[] #定义一个空矩阵

【c】使用空矩阵存储视频:

复制代码
if ret==True:
    out.write(frame) #写入视频
    cv.imshow('frame', frame) #在屏幕上播放视频
    grays.append(frame) #视频存入grays矩阵

【d】使用imageio模块转化视频为gif格式:

复制代码
mimsave('56789-100.gif',grays,fps=160,palettesize=256) #保存视频为gif格式,帧数为160,色彩种类数256

实际上转化的动图颜色暗淡。

【e】存储视频的grays.append(frame) 函数应该放在while循环中,经测试没有该循环,程序可能不会运行。

【3】效果

掌握了python+opencv+imageio()函数将视频转化为GIF的基本操作技巧,成功输出了gif格式动图。

相关推荐
云烟成雨TD15 小时前
Spring AI Alibaba 1.x 系列【69】Token 用量统计
java·人工智能·spring
十三画者15 小时前
【AI学习笔记】:DeepSeek 大模型本地部署与调用实战指南
人工智能
丁常彦-自媒体-常言道15 小时前
从首发4nm智驾芯片到兜底城市领航安全,比亚迪开启AI新征程
人工智能
在繁华处15 小时前
Java从零到熟练(四):面向对象基础
java·开发语言
Unbelievabletobe15 小时前
解决了股票api接口盘后数据更新慢的问题
大数据·开发语言·python
不会C语言的男孩16 小时前
C++ Primer 第2章:变量和基本类型
开发语言·c++
小杨在厦门16 小时前
从AI验布到智能质检:纺织企业智能化升级的三个台阶
人工智能·服装·服装厂·服装机械·铺布机
达之云*驭影16 小时前
解锁流量密码:详解抖音AI智能推荐封面功能
人工智能
lpd_lt16 小时前
AI Coding的常用Prompt技巧
python·ai·ai编程