在Matlab中获取有关tiff类的堆栈信息

时间:2014-08-22 16:27:15

标签: matlab tiff

我正在尝试使用Matlab Tiff class打开包含tiff图像的堆栈,并获取有关堆栈/其中图像的信息(高度,宽度,图像数量)。

我的问题如下:我想知道如何从“类”对象访问信息,即下例中的t。

假设我的堆栈名为'OriginalStack.tif',然后输入

t = Tiff('OriginalStack.tif','r')

我得到以下输出:

t = 

                  TIFF File: '/Users/catherine/Documents/MATLAB/OriginalStack.tif'
                       Mode: 'r'
    Current Image Directory: 1
           Number Of Strips: 1
                SubFileType: Tiff.SubFileType.Default
                Photometric: Tiff.Photometric.RGB
                ImageLength: 364
                 ImageWidth: 460
               RowsPerStrip: 364
              BitsPerSample: 8
                Compression: Tiff.Compression.None
               SampleFormat: Tiff.SampleFormat.UInt
            SamplesPerPixel: 3
        PlanarConfiguration: Tiff.PlanarConfiguration.Chunky
           ImageDescription: ImageJ=1.48v
images=20
slices=20
loop=false

                Orientation: Tiff.Orientation.TopLeft

图像的高度,宽度和数量都是正确的(显然),但我不知道从t获取它们,我必须使用imfinfo('OriginalStack.tif')来获取此信息。对不起,如果我没有在这里使用正确的术语。 谢谢!

1 个答案:

答案 0 :(得分:1)

通过查阅TIFF Reader文档,您将为TIFF对象使用名为getTag的方法。您指定为输入的是您想要的Tiff实例字段的字符串。例如,如果您想要每像素的样本,您可以这样做:

samplesPerPixel = t.getTag('SamplesPerPixel');

确保输入字段的拼写方式完全。这是区分大小写的。有关详细信息,请查看此链接:http://www.mathworks.com/help/matlab/import_export/importing-images.html#br_c8to-1。它有一些关于读取TIFF堆栈并提取其元数据的很好的例子,但是因为你已经拥有imfinfo显示的所有字段,只需选择你想要的字段,然后将其用作{{1的参数字符串格式化。