*强文本*我正在尝试按照文档中的示例在2012a 中使用 MATLAB TIFF 类保存多页 TIF 文件。我的用法不同,因为我正在编写一个 32 位灰度图像,其值范围约为 -10,000 到 200,000。
% Use 'a' for 'append' since this code is in a loop that writes each page.
% Note: 'fileName' is defined elsewhere and the file is created.
t = Tiff(fileName, 'a');
tagstruct.ImageLength = size(result, 2);
tagstruct.ImageWidth = size(result, 1);
tagstruct.Photometric = Tiff.Photometric.MinIsBlack;
tagstruct.SampleFormat = Tiff.SampleFormat.IEEEFP;
tagstruct.Compression = Tiff.Compression.None;
tagstruct.BitsPerSample = 32;
tagstruct.SamplesPerPixel = 1;
tagstruct.PlanarConfiguration = Tiff.PlanarConfiguration.Chunky;
tagstruct.Software = 'MATLAB';
t.setTag(tagstruct);
% Viewing the data immediately before the 'write' operation shows it correct.
% imtool(result(:, :, j));
% Tools -> Adjust Contrast
t.write(result(:, :, j));
t.close();
经 MATLAB 和 ImageJ 检查,输出图像的大小正确且元数据正确,但所有值均为零。
更新:
对于 TIFF 类,MATLAB 的文档有些稀疏,它本身就是LibTIFF 库的包装器。官方 TIFF 规范版本 6表示每种 TIF 图像类型的必填字段的完整列表。