2012-04-02 8 views
1

Die Funktion getframe erfasst, was auf dem Bildschirm sichtbar ist. Jedoch in meiner Anwendung möchte ich, dass die Zahl unsichtbar bei der Speicherung ihres Inhalts in einer Matrix ist. Was der Getframe also macht, ist, dass er die Figur für eine kurze Zeit sichtbar macht und seinen Inhalt erfasst und dann die "visible" -Eigenschaft auf das zurücksetzt, was sie vor der Bildschirmaufnahme war. Ich möchte nicht, dass der Blitz auf dem Bildschirm passiert. Das Speichern und Lesen der Datei reduziert die Geschwindigkeit. Es muss einen Weg geben, um dies zu umgehen.Inhalt der Figur in Matlab in eine Matrix speichern (ohne getframe oder in Datei zu speichern)

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

Antwort

2

Die einzige Möglichkeit, die ich weiß, ist, die Figur in eine temporäre Datei zu drucken. Zum Beispiel:

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

Nicht die schönste Sache, aber es scheint zu funktionieren.

+0

Danke, aber ich erwähnte ausdrücklich, dass ich nicht daran interessiert bin, Dateien zu verwenden. –

Verwandte Themen