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格式动图。

相关推荐
AKAMAI5 小时前
跳过复杂环节:Akamai应用平台让Kubernetes生产就绪——现已正式发布
人工智能·云原生·云计算
databook6 小时前
Manim实现闪光轨迹特效
后端·python·动效
新智元6 小时前
阿里王牌 Agent 横扫 SOTA,全栈开源力压 OpenAI!博士级难题一键搞定
人工智能·openai
新智元6 小时前
刚刚,OpenAI/Gemini 共斩 ICPC 2025 金牌!OpenAI 满分碾压横扫全场
人工智能·openai
机器之心7 小时前
OneSearch,揭开快手电商搜索「一步到位」的秘技
人工智能·openai
阿里云大数据AI技术7 小时前
2025云栖大会·大数据AI参会攻略请查收!
大数据·人工智能
Juchecar7 小时前
解惑:NumPy 中 ndarray.ndim 到底是什么?
python
YourKing7 小时前
yolov11n.onnx格式模型转换与图像推理
人工智能
sans_7 小时前
NCCL的用户缓冲区注册
人工智能
sans_7 小时前
三种视角下的Symmetric Memory,下一代HPC内存模型
人工智能