2011-12-29 11 views
6

Digamos que tengo un array 3D 'img' (x, y, frame) y quiero guardarlo como un TIFF. Hasta ahora lo estaba haciendo por el ahorro uno por uno como este:matlab: cómo salvar series TIFF?

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

fresco, pero lo que si quiero guardarlo como una pila uno TIFF? ¿Cómo hacerlo? Gracias :)

Respuesta

8

El parámetro 'append' parece corresponderse con lo que desea.

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

EDIT: ImageJ tiene problemas al abrir multipletiffs guardados por el estilo. 'Compresión', 'ninguno' es resolver el problema :) uso:

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

muchas gracias por su ayuda :) – Art

-1

creo que el método preferido en estos días es utilizar el Tiff class en la versión nueva de MATLAB.

+1

¿podría explicarme cómo hacerlo? – Art

+1

¿Ya leyó la ayuda de MATLAB? – Nzbuu

+0

@Nzbuu: la sección de ayuda es bastante oscura cuando se trata de varias páginas. Si tuviera un fragmento para iluminarnos, sería genial. –

Cuestiones relacionadas