读取.tif文件时出现Matlab'rtifc'错误

时间:2015-03-10 16:05:32

标签: matlab

我似乎在阅读Matlab2014a上的.tif文件时遇到了问题。每当我使用imread函数读取我的图像时,我得到以下输出:

Error using rtifc
TIFF library error - 'TIFFReadDirectory:  Incorrect count for   "SampleFormat".'

Error in readtif (line 48)
[X, map, details] = rtifc(args);

Error in imread (line 415)
[X, map] = feval(fmt_s.read, filename, extraArgs{:});

Error in circles (line 3)
RGB = imread('C:\users\michael\desktop\inkblob12.tif');

我不知道问题是什么或如何修复它,所以任何指针都将非常感谢!非常感谢。

编辑:这是infinfo输出:

 Filename: 'C:\users\michael\desktop\inkblob12.tif'
              FileModDate: '10-Mar-2015 14:06:40'
                 FileSize: 159794
                   Format: 'tif'
            FormatVersion: []
                    Width: 250
                   Height: 250
                 BitDepth: 32
                ColorType: 'truecolor'
          FormatSignature: [73 73 42 0]
                ByteOrder: 'little-endian'
           NewSubFileType: 0
            BitsPerSample: [8 8 8 8]
              Compression: 'LZW'
PhotometricInterpretation: 'RGB'
             StripOffsets: [1x21 double]
          SamplesPerPixel: 4
             RowsPerStrip: 12
          StripByteCounts: [1x21 double]
              XResolution: 72.0090
              YResolution: 72.0090
           ResolutionUnit: 'Inch'
                 Colormap: []
      PlanarConfiguration: 'Chunky'
                TileWidth: []
               TileLength: []
              TileOffsets: []
           TileByteCounts: []
              Orientation: 1
                FillOrder: 1
         GrayResponseUnit: 0.0100
           MaxSampleValue: [255 255 255 255]
           MinSampleValue: [0 0 0 0]
             Thresholding: 1
                   Offset: 159126
                 Software: 'Matrox Imaging Library [9.00]                                          ...'
                Predictor: 'Horizontal differencing'
             ExtraSamples: 2
             SampleFormat: {'Unsigned integer'  'Unsigned integer'  'Unsigned integer'}

1 个答案:

答案 0 :(得分:1)

特定问题似乎是因为SampleFormat的标记不是tiff库可以处理的类型。我建议你检查问题是否已经从你原来的工作方式改变了你的裁剪图像。 (您可能还想尝试使用imcrop或其他东西在下次直接在MATLAB中制作缩小的图像,从而完全避免潜在的不兼容问题。

由于标签的内容似乎只是'Unsigned integer',因此可以通过MATLAB使用LibTiff库例程的网关强制重新绑定所有图像,以匹配MATLAB所期望的内容:

t = Tiff('inkblob12.tif','a'); % loop over your file names, if this works
t.setTag('SampleFormat',Tiff.SampleFormat.UInt);
t.close();
附加的

a应该留下已经存在的任何内容。