我正在尝试使用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')
来获取此信息。对不起,如果我没有在这里使用正确的术语。
谢谢!
答案 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的参数字符串格式化。