MATLAB 制作gif动态图 您所在的位置:网站首页 怎么把一个视频变成动态图 MATLAB 制作gif动态图

MATLAB 制作gif动态图

2023-11-16 08:22| 来源: 网络整理| 查看: 265

MATLAB 制作gif动态图的基本思想就是,将一张张的静态图组合成一张能动的gif图片,并保存到相应的位置。 那么,要想制作一张动态图,首先要有若干个静态图,并且他们的索引值是连续的。下面先说一下matlab关于静态图的绘制及其保存。

1、MATLAB静态图绘制及保存

下面以一个sin函数为例进行说明。实例是这样的:有一个运动轨迹sin(t),t=0:30。现在有一个小球去跟踪这个sin曲线。 (1)首先画出y=sin(t)的图像: m语言:

t=1:0.1:30; y=sin(t); plot(t,y); grid on

得到如下图像:

这里写图片描述

接下来要定义一个小球去跟踪上面的曲线,并将跟踪过程中生成的图片保存到当前工作路径下的image文件夹下:

%迭代值 i=0; %设置小球属性,横坐标数据为'xdata',纵坐标数据为'ydata',红色,大小为30 h = line('xdata',[],'ydata',[],'color','r','marker','.','markersize',30); for ii=1:length(y) %跟踪上述曲线 set(h,'xdata',t(ii),'ydata',y(ii)); %建立新图像 figure(); %绘制 drawnow %可认为是小球一定速度 pause(0.1) hold on i=i+1; %保存图片,位置为:/image,名称为i.bmp print(1,'-dbmp',sprintf('image/%d',i)) %关闭figure() close; end

由此变生成了0.bmp~291.bmp共291张图片,并保存在当前工作路径下的image文件夹下,如下图所示。 这里写图片描述

2、生成gif图片

根据上述操作,我们得到了名为0-291.bmp的图片。接下来要根据这291张图片制作一张gif图片。

%依次读取生成的所有图片 for j=1:length(y) %获取当前图片 A=imread(sprintf('image/%d.bmp',j)); [I,map]=rgb2ind(A,256); %生成gif,并保存 if(j==1) imwrite(I,map,'movefig.gif','DelayTime',0.1,'LoopCount',Inf) else imwrite(I,map,'movefig.gif','WriteMode','append','DelayTime',0.1) end end

最后生成的gif图片如下: 这里写图片描述



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有