2013-08-16 10 views
5

RainbowSalva esatto uscita immagine da imagesc in MATLAB

Ciao, voglio salvare questa immagine prodotta dal imagesc(magic(3)), l'esatta rappresentazione dell'arcobaleno, è possibile?

Grazie.

Questa domanda potrebbe sembrare un duplicato, ma non lo è. Ho guardato la soluzione alla domanda simile in questo sito, ma non mi ha soddisfatto. Ho esaminato il centro assistenza Matlab e la risposta ravvicinata che ho ottenuto era questa, nella parte inferiore di http://goo.gl/p907wR

+2

È 'saveas (gcf, 'filename', 'format')' cosa vuoi? Prova un formato vettoriale come .eps – Werner

+0

@Werner: Grazie per la risposta, potresti elaborare per favore. – motiur

+0

@Werner: Grazie amico, funziona, * abbracci *. – motiur

risposta

11

Per salvare la figura come file (non importa come è stata creata), si dovrebbe fare :

saveas(figureHandle,'filename','format') 

dove figureHandle potrebbe essere la maniglia gcf, che significa: ottenere cifra attuale.

Come sottolineato nella discussione, se qualcuno non vuole che le zecche da mostrare, la persona può aggiungere:

set(gca,'XTick',[]) 
set(gca,'YTick',[]) 

dove GCA è la maniglia per l'asse attuale, proprio come gcf. Se hai più di un asse, non dimenticare di "gestire le maniglie". Essi vengono restituiti al mondo quando si tratta di creare, vale a dire:

hFig = figure(pairValuedProperties); % Create and get the figure handle 
hAxes1 = suplot(2,1,1,pairValuedProperties); % Create and get the upper axes handle 
hAxes2 = suplot(2,1,2,pairValuedProperties); % Create and get the bottom axes handle 

in cui il valore di coppia è la figura o assi proprietà dichiarate nella seguente sintassi:

'PropertyName1',PropertyValue1,'PropertyName2',PropertyValue2,…

Ecco la documentazione MATLAB su il Figure e Axes Properties e circa lo saveas method.


Esempio:

L'immagine salvata con il seguente codice:

figure 
imagesc(magic(3)) 
set(gca,'XTick',[]) % Remove the ticks in the x axis! 
set(gca,'YTick',[]) % Remove the ticks in the y axis 
set(gca,'Position',[0 0 1 1]) % Make the axes occupy the hole figure 
saveas(gcf,'Figure','png') 

Figure without the white border

+0

Beh, non potevo evitare di mostrare le zecche nella mia immagine, e c'era un bordo bianco attorno all'immagine come una cornice, che è anche Non volevo Ma sono soddisfatto che io abbia una risposta plausibile al mio incarico nelle scuole. Grazie ancora. – motiur

+0

@MotiurRahman Aggiunto un esempio. Attenzione che il gca cambia se tracciate un'altra figura o assi. – Werner

+0

Abbracci per lo sforzo, il tuo esempio funziona, ma io sono in Archlinux e Nautilus sta inquadrando un bordo bianco attorno all'immagine, anche se non ho ottenuto l'asse giusto. Il fatto è che devo fare un filtraggio medio di questa immagine, e il bordo bianco (che non può essere riconosciuto, perché la pagina web è bianca) sta davvero rovinando la mia immagine (che in realtà è un'immagine sgranata, non questa immagine 3x3 sopra) Quindi devo ricorrere al filtraggio mediano, che è okayish, ma il filtraggio medio sarebbe stato migliore. – motiur

3

È possibile utilizzare:

print -djpeg99 'foo.jpg' 

Ciò farà risparmiare come ' foo .jpg 'di cui hai bisogno.

1

È possibile utilizzare il seguente codice

imagesc(A); 
%%saving the image 
hgexport(gcf, 'figure1.jpg', hgexport('factorystyle'), 'Format', 'jpeg'); 
set(gcf,'PaperUnits','inches','PaperPosition',[0 0 4 4]); 
print -djpeg filename.jpg -r10 

Qui A sarà la matrice da cui si avrà un'immagine. E l'immagine verrà salvata come filename.jpg nella directory.