2012-04-02 46 views
1

函数getframe捕获屏幕上可见的任何内容。但是,在我的应用程序中,我希望数字在隐藏时将其内容存储在矩阵中。因此,getframe的作用是在短时间内使图形可见并捕捉其内容,然后将“visibile”属性设置回屏幕截图之前的状态。 我不希望在屏幕上发生闪光。同样,保存文件和读取它会降低速度。必须有一种方法来解决这个问题。在Matlab中将图的内容保存到矩阵(不使用getframe,也不保存到文件)

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

回答

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); 

不是最漂亮的东西,但它似乎工作。

+0

谢谢,但我特别提到我对使用文件不感兴趣。 – 2012-04-05 17:05:44

相关问题