如何在MATLAB中创建GIF动画图像?

2894次浏览(过去30天)
我想知道是否有MATLAB功能在MATLAB中创建动画GIF。

接受的答案

MathWorks支金宝app持团队
使用'imwrite'功能来创建一个动画GIF。一个动画GIF包含一系列的图像,所有的图像都合并到一个文件中。对于这个示例,
1.为函数y=x^n绘制一系列不同n值的曲线图
2.将它们捕获为图像
3.将它们写入GIF文件
h=数字;
严格的手册%这确保getframe()返回一致的大小
文件名=“testAnimated.gif”;
对于n = 1:0.5:5
%绘制y=x的绘图。^n
x=0:0.01:1;
y=x.^n;
情节(x, y)
drawnow
%将绘图捕获为图像
frame=getframe(h);
我= frame2im(框架);
[imind,cm]=rgb2ind(im,256);
%写入GIF文件
如果n = = 1
imwrite(imind、cm、文件名、,“gif”,“循环计数”、正);
其他的
imwrite(imind、cm、文件名、,“gif”,“写模式”,“追加”);
终止
终止
要了解更多关于创建动画GIF文件的详细描述,请参阅imwrite函数参考页上的示例" Write animated GIF ":
12个评论
沃尔特·罗伯森
沃尔特·罗伯森 2021年9月8日7时18分
前缀=“abc_20190304”
dinfo=dir([前缀“*.png”]);
文件名={dinfo.name};
对于K = 1:长度(文件名)
工作在文件名{K}中使用文件名
终止

登录以发表评论。

更多的答案(3)

查德·格林
查德·格林 2017年6月4日
或者,为了更简单的选择,使用 gif 函数在文件交换。

沙拉伊
沙拉伊 2017年5月1日
编辑:查德·格林 2018年10月17日
x=0:0.01:1;
图(1)
文件名='testnew51.gif';
对于n = 1:0.5:5
y=x.^n;
情节(x, y)
drawnow
frame=getframe(1);
我= frame2im(框架);
[imind,cm]=rgb2ind(im,256);
如果n = = 1;
imwrite(imind、cm、文件名、,“gif”,“循环计数”、正);
其他的
imwrite(imind、cm、文件名、,“gif”,“写模式”,“追加”);
终止
终止
1评论
科尔曼巴里
科尔曼巴里 2019年6月15日
谢谢您的写作,这对框架的修改非常有帮助

登录以发表评论。


亚历克
亚历克 2013年12月19日
当写入多帧GIF图像时,X应该是一个4维的m × n × 1 × 金宝appP数组,其中P是要写入的帧数。
但如果我试图传递一个m × n × 3 × p,它似乎将每个RGB颜色通道视为一个单独的灰度帧。现在有没有办法写一个动画的颜色GIF没有一个循环的帧?

社区寻宝

在MATLAB Central中查找宝藏,了解社区如何帮助您!

开始狩猎!