在MATLAB中使用子图来获取图像序列的视频

时间:2015-10-13 01:53:14

标签: matlab

我有一系列MATLAB数据,我想将其转换为视频。这些数字由2个子图组成,每个子图包含一个imshow,其上覆盖有2个不同的图(红色和绿色),如下所示:

enter image description here

如何获取每个图中包含的所有数据的图像,以便接下来我可以使用VideoWriter将图像序列转换为视频?

1 个答案:

答案 0 :(得分:1)

关键是:

im = frame2im(getframe(h));    

其中h是绘图或轴的句柄 您还可以将可选参数'rect'传递给getframe以指定要捕获的区域。

以下是MathWorks中有关如何在循环中使用getframe来记录帧的示例。有关更多信息,请键入doc getframe

Z = peaks;
surf(Z)
axis tight manual
ax = gca;
ax.NextPlot = 'replaceChildren';

loops = 40;
F(loops) = struct('cdata',[],'colormap',[]);
for j = 1:loops
    X = sin(j*pi/10)*Z;
    surf(X,Z)
    drawnow
    F(j) = getframe(gcf);
end

% Play back the movie two times.

fig = figure;
movie(fig,F,2)