使用MATLAB TIFF类时的空白TIF图像

时间:2012-05-15 15:17:05

标签: image image-processing tiff matlab

* 强文 *我试图按照example in the documentation在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检查的输出图像尺寸正确且元数据正确,但所有值均为零。

更新

MATLAB的文档对于TIFF类来说有些稀疏,它本身就是LibTIFF library的包装器。 official TIFF Specification Version 6表示每种TIF图像类型的必填字段的完整列表。

1 个答案:

答案 0 :(得分:1)

example of MATLAB documentation: Exporting to images中,您的代码中没有一行代码:

tagstruct.RowsPerStrip = 16

因此,RowsPerStrip的{​​{1}}字段可能缺少所有零图像的原因。