Matlab如何制作和保存gif动图
2017-11-25 16:07
3411 查看
在Mathematica当中,有Export函数可以很方便地将你绘出的多张图片合成为一张gif动图,在Matlab当中有没有类似的函数呢?当然,没有用起来那么方便的。但是Matlab可以使用imwrite函数进行gif的复写叠加形成gif动图,这也是最为普遍的一种方法。
动机来源于很多时候,你想要向别人讲解或者展示某个函数的变化过程,或者要说明某个变化的物理过程(比如说流体),利用matlab的类型于以下框架的代码,可以很方便地在软件中将过程动态展示出来。
问题的关键在于,很多时候我们并不只是想在Matlab中把图动态显示一下给自己看,而是需要将它保存为gif(为什么是gif呢?因为其小巧方便,容易嵌入到其他东西中),从而用以汇报说明,或者其他用途。
之前很长一段时间,我嫌matlab保存gif要改动的代码比较多(Mathematica只要在Animate时,将Animate改成Export就直接出图了),都是利用gif动画录制工具(推荐灵者Gif录制),在matlab图在跑的时候,给它录成gif。
后来,需要的从matlab中搞出来的gif越来越多了,深感录制方法的琐碎,便又想到了利用Matlab自身函数,将参数递变绘制的多张图,保存为gif动图。
一个简洁而基本的框架如下:
这里imwrite写入时,要保证原来已经有一个文件存在,才能用“append”参数,所以设置了一个pic_num,让一张图直接保存,后面用“append”。
举个例子结束吧:
动机来源于很多时候,你想要向别人讲解或者展示某个函数的变化过程,或者要说明某个变化的物理过程(比如说流体),利用matlab的类型于以下框架的代码,可以很方便地在软件中将过程动态展示出来。
figure(1); plot(pic(i));%pic(i)表示不同时间下的图像 axis([xmin xmax ymin ymax]); drawnow;
问题的关键在于,很多时候我们并不只是想在Matlab中把图动态显示一下给自己看,而是需要将它保存为gif(为什么是gif呢?因为其小巧方便,容易嵌入到其他东西中),从而用以汇报说明,或者其他用途。
之前很长一段时间,我嫌matlab保存gif要改动的代码比较多(Mathematica只要在Animate时,将Animate改成Export就直接出图了),都是利用gif动画录制工具(推荐灵者Gif录制),在matlab图在跑的时候,给它录成gif。
后来,需要的从matlab中搞出来的gif越来越多了,深感录制方法的琐碎,便又想到了利用Matlab自身函数,将参数递变绘制的多张图,保存为gif动图。
一个简洁而基本的框架如下:
clc clear pic_num = 1; for *************************** plot(fig(i)); F=getframe(gcf); I=frame2im(F); [I,map]=rgb2ind(I,256); if pic_num == 1 imwrite(I,map,'test.gif','gif','Loopcount',inf,'DelayTime',0.2); else imwrite(I,map,'test.gif','gif','WriteMode','append','DelayTime',0.2); end pic_num = pic_num + 1; end
这里imwrite写入时,要保证原来已经有一个文件存在,才能用“append”参数,所以设置了一个pic_num,让一张图直接保存,后面用“append”。
举个例子结束吧:
clc clear pic_num = 1; for epsilon = 0.01:-0.001:0.005 t = 1; syms x; ur = -1; ul = 1; s = (ur + ul)/2; w = ur + 1/2*(ul - ur)*(1-tanh((ul-ur)*(x-s*t)/(4*epsilon))); figure(1); ezplot(w); axis([-0.05,0.05 -1.5 1.5]) drawnow; F=getframe(gcf); I=frame2im(F); [I,map]=rgb2ind(I,256); if pic_num == 1 imwrite(I,map,'test.gif','gif', 'Loopcount',inf,'DelayTime',0.2); else imwrite(I,map,'test.gif','gif','WriteMode','append','DelayTime',0.2); end pic_num = pic_num + 1; end
相关文章推荐
- 如何将你在FLASH 8.0里制作完成的动态图片保存成GIF格式的文件,我来教你!!!
- 如何将你在FLASH 8.0里制作完成的动态图片保存成GIF格式的文件,我来教你!!!
- Matlab制作gif动图以及生产avi视频
- 如何用ps制作GIF动图
- 如何制作gif图片
- MATLAB 保存的图片有白边如何解决
- Matlab如何保存被plot的图像
- matlab制作GIF之hello world
- Matlab训练好的BP神经网络如何保存和读取方法(附实例说明)
- Matlab中如何将视频转换成一帧一帧的图片并输出保存
- 如何用PS制作GIF动画图 PS制作GIF动画图文教程
- 如何制作GIF动态图片
- 如何将视差数据保存为 txt 数据文件以便在 Matlab 中读取分析?
- linux下,python如何读取和保存matlab的.mat文件的方法
- gif动图快速制作方法(附工具)
- 【matlab】:matlab如何实现切分图片并保存?
- MATLAB制作GIF之大鹏展翅
- 如何在ios中的UI界面利用相框制作gif动画
- imageready 如何保存为gif格式图片总结.
- Matlab从一系列图片导出AVI视频,导出GIF动图