imwrite函数 matlab_基于Matlab语言的Gif图制作

使用PPT 做汇报和报告的时候,通常需要用到动态图来展示数据的动态变化过程,gif格式的图片较视频文件而言占用内存小,用起来也方便,那如何使用MATLAB将生成的数据做成动画并保存为 .gif格式的文件呢?

一、方法:

核心函数:

  1. imwrite :该函数功能是“将图像写入图形文件”,包括(1)将灰度图像写入PNG,。(2)将索引图像写入到PNG。(3)将RGB图写入到JPEG。(4)将多个图像写入到TIFF文件。(5)制作GIF动画。函数语法:imwrite(A, map, filename)等,imwrite(A, map, filename)是将A中的索引图像及其关联的颜色图写入由map和filename指定的文件。
  2. getframe: 函数功能是“捕获坐标区或图窗作为影片帧“。函数语法:F=getframe(*),*=gcf时可捕获当前图窗,指定为图窗对象;*=gca时,可捕获坐标区,指定为坐标区域(坐标轴没有标尺,没有轴标签等)。需要捕获指定大小区域的图像时,使用F=getframe(gcf,[left bottom width height]);其中F为影片帧结构体。
  3. frame2im:该函数功能是”返回与影片帧关联的图像数据“。函数语法:[X,Map]=frame2im(F),X是索引图像数据,Map为关联的颜色图。
  4. rgb2ind:函数功能是”将RGB图像转换为索引图像“。语法:[X,map]=rgb2ind(RGB,n)等。map最多包含n个颜色,n<=65536。

二、示例

  1. 幂函数
    ,底数x在区间[0,1]范围内,函数图像随指数n的变化情况,n=1:0.5:5。

方法一[1]

x 

方法二 [2]:

h = figure;
axis tight manual % this ensures that getframe() returns a consistent size
filename = 'testAnimated.gif';
for n = 1:0.5:5
    % Draw plot for y = x.^n
    x = 0:0.01:1;
    y = x.^n;
    plot(x,y) 
    drawnow 

      % Capture the plot as an image 
      frame = getframe(h); 
      im = frame2im(frame); 
      [imind,cm] = rgb2ind(im,256); 

      % Write to the GIF File 
      if n == 1 
          imwrite(imind,cm,filename,'gif', 'Loopcount',inf); 
      else 
          imwrite(imind,cm,filename,'gif','WriteMode','append'); 
      end 
  end

效果图:

d8d81fafdf1b28bbfacabc0fea2b729f.gif

2.螺旋线

close 

效果图:

4da6c0b9d51998f499ceedfbf1ecd57d.gif

参考

  1. ^[1] https://ww2.mathworks.cn/help/matlab/ref/imwrite.html?s_tid=srchtitle
  2. ^[2] https://ww2.mathworks.cn/matlabcentral/answers/94495-how-can-i-create-animated-gif-images-in-matlab
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值