Hi, I'm trying to write multidimensional TIFF files (also known as "hyperstacks" in ImageJ). For example, the "dimensions" will be microscopy attributes, such as fluorescence channel, timepoint, stage position, etc. I have an example below. I tried using the imwrite "append" mode in a nested for loop but it simply created a 21x1 stack, not a 7x3 as I had hoped. Any suggestions? Thanks.
% A is 7x3 cell array containing all images
outputFileName = 'img_stack.tif'
for j = 1:3 %channel number
for i = 1:7 % timepoint
imwrite(A{i,j}, outputFileName,'writemode','append','Compression','none');
end
end

回答 (2 件)

Kouichi C. Nakamura
Kouichi C. Nakamura 2018 年 5 月 3 日

2 投票

I recommend to use ijmshow in conjunction with Fiji's ImageJ-MATLAB.
addpath '/Applications/Fiji.app/scripts' % depends your Fiji installation
ImageJ
imp = ijmshow(I,'YXCZT')
% I is 5D array of uint8 or uint16
% the second argument determines which dimension represents what
% imp is a 5D hyperstack
ij.IJ.saveAsTiff(imp, 'image1.tif');
Walter Roberson
Walter Roberson 2016 年 5 月 3 日

0 投票

The information I find suggests that ImageJ parses the Tiff ImageDescription tag to determine the arrangement. I would need to study an example to determine the proper order.
imwrite() cannot write the ImageDescription tag; you would need to use the Tiff class for that.

カテゴリ

ヘルプ センター および File ExchangeData Import and Analysis についてさらに検索

質問済み:

2016 年 5 月 3 日

回答済み:

2018 年 5 月 3 日

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by