2

我正在尝试读取 128 像素 x 128 像素 x 122000 帧的多页 tiff。使用以下代码读取文件:

InfoImage=imfinfo(fname);
mImage=InfoImage(1).Width;
nImage=InfoImage(1).Height;
NumberImages=length(InfoImage);
image=zeros(nImage,mImage,NumberImages,'uint16'); 
TifLink = Tiff(fname, 'r');
for i=1:NumberImages
   TifLink.setDirectory(i);
   image(:,:,i)=TifLink.read();
end
TifLink.close();

产生以下错误:

Error using tifflib
Input argument out of range.

Error in Tiff/setDirectory (line 1277)
        tifflib('setDirectory',obj.FileID,dirNum-1);

Error in TiffReader (line 18)
   TifLink.setDirectory(i);

正好 i = 65537,或 2^16 + 1。

似乎 MATLAB 认为 tiff 不可能长于 65536 帧,这显然不是这种情况,因为我有一个在 ImageJ 中打开得很好。

有谁知道问题可能是什么?

4

1 回答 1

0

TIFFStack能够Matlab导入这些文件。 https://github.com/DylanMuir/TIFFStack

于 2016-12-12T14:04:12.300 回答