2011-12-29 20 views
6

Powiedzmy, że mam tablicę 3D "img" (x, y, ramka) i chcę ją zapisać jako TIFF. Do tej pory robiłem to przez zapisanie jednego po drugim tak:matlab: jak zapisać serię TIFF?

for K=1:length(img(1, 1, :)) 
    outputFileName = sprintf('img_%d.tif',K); 
    imwrite(img(:, :, K), outputFileName); 
end 

fajne, ale co zrobić, jeśli chcę zapisać go jako stos jeden TIFF? Jak to zrobić? Dzięki :)

Odpowiedz

8

Parametr "append" wydaje się odpowiadać temu, co chcesz.

outputFileName = 'img_stack.tif' 
for K=1:length(img(1, 1, :)) 
    imwrite(img(:, :, K), outputFileName, 'WriteMode', 'append'); 
end 

EDIT: ImageJ ma problemy przy otwieraniu multipletiffs zapisane tak. „Kompresja”, „brak” jest rozwiązanie problemu :) użycia:

imwrite(img(:, :, K), outputFileName, 'WriteMode', 'append', 'Compression','none'); 
+0

bardzo dziękuję za pomoc :) – Art

-1

myślę preferowanej metody te dni jest użycie Tiff class w nowszej wersji programu MATLAB.

+1

czy możesz wyjaśnić, jak to zrobić? – Art

+1

Czy znasz już pomoc MATLAB? – Nzbuu

+0

@Nzbuu: sekcja pomocy jest raczej niejasna, jeśli chodzi o wielostronicowość. Gdybyś miał fragment, który oświeciłby nas, byłby świetny. –

Powiązane problemy