在Matlab中将图形内容保存到矩阵中(不使用getframe,也不保存到文件)

时间:2012-04-02 21:34:40

标签: matlab figure

函数getframe捕获屏幕上可见的任何内容。但是在我的应用程序中,我希望在将其内容存储在矩阵中时,该图形为不可见。所以getframe所做的是,在短时间内,它使图形可见并捕获其内容,然后将“visibile”属性设置回屏幕捕获之前的状态。 我不希望屏幕上发生闪光。同样,保存文件并将其读回可降低速度。必须有办法解决这个问题。

hFig=figure('Visible','off'')
text ('String','ABC','fontsize',300)
imageData = getframe(hFig);       
img = imageData.cdata; % img is what I am interested in

1 个答案:

答案 0 :(得分:2)

我知道这样做的唯一方法是将图形打印到临时文件中。例如:

%Create a figure
hFig=figure('Visible','off')
text ('String','ABC','fontsize',300)

%Save the figure to a tiff file using a salted name
tmpName = sprintf('Temp_Figure_%04d.tiff', floor(rand*1000));
print(['-f' num2str(hFig)], '-dtiff', tmpName)

%Read the data
img = imread(tmpName);

%Delete the temporary figure
delete(tmpName);

不是最漂亮的东西,但似乎有效。