2013-08-16 4 views
5

RainbowZapisz dokładnego obrazu z imagesc w Matlab

Cześć, chcę zapisać ten obraz wytwarzany z imagesc(magic(3)), dokładną reprezentację tęczy, jest to możliwe?

Dzięki.

To pytanie może wyglądać jak duplikat, ale tak nie jest. Spojrzałem na rozwiązanie podobnego pytania na tej stronie, ale mnie to nie zadowoliło. Zajrzałem do centrum pomocy Matlab, a odpowiedź brzmiała tak: http://goo.gl/p907wR

+2

Czy 'saveas (gcf, 'filename', 'format')' czego chcesz? Wypróbuj wektorowy format jako .eps – Werner

+0

@Werner: Dziękuję za odpowiedź, czy mógłbyś to wyjaśnić. – motiur

+0

@Werner: Dzięki stary, działa, * przytula *. – motiur

Odpowiedz

11

Aby zapisać figurę jako plik (nie ważne jak został utworzony), należy wykonać :

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

gdzie figureHandle może być uchwyt gcf, co oznacza: uzyskać aktualną postać.

Jak wskazano w dyskusji, jeśli ktoś nie chce kleszcze do pokazania, osoba może dodać:

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

gdzie GCA jest uchwytem do bieżącej osi, tak jak gcf. Jeśli masz więcej niż jedną oś, nie zapomnij "obsłużyć uchwytów". Są one zwrócone podczas ich tworzenia, czyli:

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 

gdzie wartość para to figura lub osie właściwości zadeklarowane w następującej składni:

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

Oto dokumentacja Matlab o Figure i Axes Properties i około saveas method.


Przykład:

Obraz zapisany z następującego kodu:

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

Cóż, nie mogłem uniknąć zaznaczenia tyknięć na moim obrazie, a wokół obrazu była biała ramka jako ramka, która jest również Nie chciałem. Ale jestem usatysfakcjonowany, że mam wiarygodną odpowiedź na moje zadanie w szkole. Jeszcze raz dziękuję. – motiur

+0

@MotiurRahman Dodano przykład. Strzeż się, że gca się zmieni, jeśli narysujesz inną figurę lub osie. – Werner

+0

Hugs for the effort, twój przykład działa, ale ja jestem w Archlinuksie, a nautilus tworzy białą ramkę wokół obrazu, mimo że nie uzyskuję osi. Chodzi o to, że muszę zrobić średnie filtrowanie tego obrazu, a biała ramka (która nie może być rozpoznana, ponieważ strona jest biała) naprawdę psuje mi obraz (który jest w rzeczywistości ziarnistym obrazem, a nie powyższym obrazkiem 3x3) Więc muszę uciekać się do mediany filtrowania, co jest w porządku, ale średnie filtrowanie byłoby lepsze. – motiur

3

Można użyć:

print -djpeg99 'foo.jpg' 

ten zachowa je jako " bla .jpg 'jak potrzebujesz.

1

Można użyć następującego kodu

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 

tu będzie macierzą, z której trzeba będzie obraz. Obraz zostanie zapisany jako plik.jpg w katalogu.