我有一系列MATLAB数据,我想将其转换为视频。这些数字由2个子图组成,每个子图包含一个imshow,其上覆盖有2个不同的图(红色和绿色),如下所示:
如何获取每个图中包含的所有数据的图像,以便接下来我可以使用VideoWriter将图像序列转换为视频?
答案 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)