2012-04-02 3 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

Спасибо, но я специально упомянул, что меня не интересуют файлы. –