MATLAB制作GIF动画

Posted 嗑药的皮皮虾

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MATLAB制作GIF动画相关的知识,希望对你有一定的参考价值。

以官方例程为例

%生成 y = x^n (n变化)图像的gif图
x = 0:0.01:1;
n = 1:0.5:5;
nImages = length(n); %图像数即帧数
fig = figure;
for idx = 1:nImages %索引
    y = x.^n(idx);
    plot(x,y,'LineWidth',3)
    title(['y = x^n,  n = ' num2str( n(idx)) ])
    drawnow
    %制作动画
    frame = getframe(fig);
    imidx = frame2im(frame);
    [A,map] = rgb2ind(imidx,256); %将 RGB 图像转换为索引图像 A。map 最多包含 n 个颜色。
    if idx == 1
        imwrite(A,map,filename,'gif','LoopCount',Inf,'DelayTime',1);
    else
        imwrite(A,map,filename,'gif','WriteMode','append','DelayTime',1);
    end
end

官方解释:因为 GIF 文件不支持三维数据,所以应调用 rgb2ind,使用颜色图 map 将图像中的 RGB 数据转换为索引图像 A。要将多个图像添加到第一个图像中,请使用名称-值对组参数 'WriteMode','append' 调用 imwrite

 

help 查看函数作用

>> help drawnow
drawnow - 更新图窗并处理回调

    此 MATLAB 函数 更新图窗并处理任何挂起的回调。如果您修改图形对象并且需要在屏幕上立即查看这次更新,请使用该命令。


>> help getframe
getframe - 捕获坐标区或图窗作为影片帧

    此 MATLAB 函数 捕获显示在屏幕上的当前坐标区作为影片帧。F 是一个包含图像数据的结构体。getframe
    按照屏幕上显示的大小捕获这些坐标区。它并不捕获坐标区轮廓外部的刻度标签或其他内容。

    F = getframe
    F = getframe(ax)
    F = getframe(fig)
    F = getframe(___,rect)


>> help frame2im
frame2im - 返回与影片帧关联的图像数据

    此 MATLAB 函数 从单个影片帧 F 返回索引图像数据 X 和关联的颜色图 Map。输出 Map 是一个三列矩阵,其中,矩阵的每一行是一个 RGB
    三元值,用于定义颜色图的一种颜色。如果该帧包含真彩色数据,则 Map 为空。函数 getframe 和 im2frame 创建影片帧。

    [X,Map] = frame2im(F)


>> help imwrite
imwrite - 将图像写入图形文件

    此 MATLAB 函数 将图像数据 A 写入 filename 指定的文件,并从扩展名推断出文件格式。imwrite
    在当前文件夹中创建新文件。输出图像的位深度取决于 A 的数据类型和文件格式。对于大多数格式来说:

    imwrite(A,filename)
    imwrite(A,map,filename)
    imwrite(___,fmt)
    imwrite(___,Name,Value)


>> help rgb2ind
rgb2ind - 将 RGB 图像转换为索引图像

    此 MATLAB 函数 使用最小方差量化和抖动将 RGB 图像转换为索引图像 X。map 最多包含 n 个颜色。n 必须小于或等于 65,536。

    [X,map] = rgb2ind(RGB,n)
    X = rgb2ind(RGB, map)
    [X,map] = rgb2ind(RGB, tol)
    [___] = rgb2ind(___,dither_option)

创作打卡挑战赛 赢取流量/现金/CSDN周边激励大奖

以上是关于MATLAB制作GIF动画的主要内容,如果未能解决你的问题,请参考以下文章

循环中的 MATLAB getframe 冲突以创建动画 gif

在 MATLAB 中将动画变形另存为 GIF 文件

如何在matlab中从一组图像中制作gif图像?

matlab动画如何保存

安卓手机如何制作GIF动态图?

制作GIF动画