Matlab: как сохранить серию TIFF?

Допустим, у меня есть 3D-массив img (x, y, кадр) и я хочу сохранить его в формате TIFF. До сих пор я делал это, сохраняя один за другим следующим образом:

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

круто, но что, если я хочу сохранить его как один стек tiff? Как это сделать? Спасибо :)


person Art    schedule 29.12.2011    source источник


Ответы (2)


Параметр 'append', кажется, соответствует тому, что вы хочу.

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

РЕДАКТИРОВАТЬ: IMAGEJ имеет проблемы при открытии мультипликаторов, сохраненных таким образом. «Сжатие», «нет» решает проблему :) используйте:

imwrite(img(:, :, K), outputFileName, 'WriteMode', 'append',  'Compression','none');
person Clement J.    schedule 29.12.2011

Я думаю, что в наши дни предпочтительным методом является использование класса Tiff в более новая версия MATLAB.

person Nzbuu    schedule 29.12.2011
comment
не могли бы вы объяснить, как это сделать? - person Art; 19.01.2012
comment
@Nzbuu: раздел справки довольно неясен, когда речь идет о многостраничности. Если бы у вас был фрагмент, чтобы просветить нас, это было бы здорово. - person Jean-Yves; 27.08.2013