MATLAB图片处理------动态绘图
- 1. 动态绘图
- 2. XXXXX
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 == 1imwrite(A, map, filename , 'gif', 'Loopcount', Inf, 'DelayTime', 0.1);% 将第一张图片写入GIF文件中,并且将GIF播放次数设置成无穷,即保存的GIF图会一直动下去elseimwrite(A, map,filename ,'gif','WriteMode','append','DelayTime',0.1);% 依次将其他的图片写入到GIF文件当中,DelayTime为时滞0.1sendend