MATLAB图像处理技巧

2023-12-17 22:31:49

MATLAB图片处理------动态绘图

1. 动态绘图

在这里插入图片描述
主要用到四个函数,分别为getframe、frame2im、rgb2ind以及imwrite:
1.getframe:获取当前绘图窗口的图片作为影片帧;
2.frame2im:从单个影片帧 F 返回索引图像数据 X 和关联的颜色图 Map;
3.rgb2ind:将RGB图像转换(2同to音)为索引(index)图像;
4.imwrite 函数就是起到将循环中得到的图片依次写入到GIF格式的图片中,其中参数‘DelayTime’表示相邻两张图片播放的间隔时间,单位秒,一定程度上决定了GIF动图播放时的流畅程度。

代码如下: 也可参考龙行天下288

f2 = figure;
for n = 1 : size(Qmass_gif,2)
    
    x_Q = 1 : 1 : size(Qmass_gif,1);
    y_Q = Qmass_gif(:,n);
    l = (n-1) * 50;
    
    set(f2, 'Color', 'white');                                  % 设置图片窗口背景颜色为白色
    plot(x_Q, y_Q, 'LineWidth', 1.5, 'Color', 'b'); 
    % 绘制x,y曲线,并设置线宽,曲线颜色,曲线图例名称
    set(gca,'FontSize',12,'FontName','Bookman Old Style');      % 设置图片中字体的大小,样式
    xlabel('cell number', 'FontSize',14);                       % 设置x轴标签
    xlim([1, size(Qmass_gif,1)]);                               % 设置y轴标签
    ylim([0, 0.015]);                                           % 设置y轴标签
    ylabel('mass flow kg/s', 'FontSize',14);                    % 设置y轴标签
    legend(['inter=',num2str(l)],'FontSize',14, 'box', 'off');  % 为图片加上图例
    title('GIF: Flow distribution)', 'FontSize',14);            % 增加图片的标题
    drawnow;                                                    % 立即刷新当前绘图窗口,这是matlab绘图中动态展示的关键
    F = getframe(f2);                                           % 获取当前绘图窗口的图片作为影片帧
    Im = frame2im(F);                                           % 返回与动态图片相关的图片数据
    [A, map] = rgb2ind(Im, 256);                                % 将RGB图片转化为索引图片
    filename = 'testAnimated.gif';                              % GIF图片的保存路径
    if n == 1
        imwrite(A, map, filename , 'gif', 'Loopcount', Inf, 'DelayTime', 0.1);
        % 将第一张图片写入GIF文件中,并且将GIF播放次数设置成无穷,即保存的GIF图会一直动下去
    else
        imwrite(A, map,filename ,'gif','WriteMode','append','DelayTime',0.1);
        % 依次将其他的图片写入到GIF文件当中,DelayTime为时滞0.1s
    end
    
end

2. XXXXX

文章来源:https://blog.csdn.net/weixin_45896923/article/details/135050272
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。