主要内容

multibandread

从二进制文件读取band-interleaved数据

语法

X = multibandread(文件名、大小、精度、抵消、交错、byteorder)
X = multibandread (…, subset1、subset2 subset3)

描述

X = multibandread(文件名、大小、精度、抵消、交错、byteorder)读取band-sequential (BSQ) band-interleaved-by-line (BIL),或band-interleaved-by-pixel(毕普)二进制文件的数据文件名。的文件名输入被指定为一个特征向量或字符串标量。这个函数定义乐队第三维度的三维数组,如这个图所示。

示意图显示关系行、列和乐队的数据

您可以使用的参数multibandread指定读取操作的许多方面,如带读。看到参数为更多的信息。

X是一个二维数组如果只有一个带读;否则它是三维的。X作为一个数组返回的数据类型默认情况下。使用精度参数将数据映射到一个不同的数据类型。

X = multibandread (…, subset1、subset2 subset3)读取文件中的数据的一个子集。您可以使用三个构造子集参数来指定数据子集行,列,和乐队维度。看到构造子集参数为更多的信息。

请注意

除了BSQ、基本脉冲电平和毕普文件、多波段图像可能使用TIFF文件格式存储。在这种情况下,使用imread函数导入数据。

参数

此表描述了参数接受multibandread

论点

描述

文件名

特征向量或字符串标量包含要读取的文件的名称。

大小

三元素向量组成的整数(高度、宽度、N),在那里

  • 高度总行数吗

  • 宽度每一行元素的总数

  • N是乐队的总数。

这将是数据的尺寸如果是阅读。

精度

特征向量或字符串标量指定要读取的数据的格式,如“uint8”,“双”,“整数* 4”支持的,或任何其他的精度万博1manbetx从文件中读函数。

注意:您还可以使用精度参数指定输出数据的格式。例如,阅读uint8数据和输出uint8数组,指定的精度“uint8 = > uint8”(或‘* uint8‘)。阅读uint8在MATLAB数据并输出它®软件在单精度,指定“uint8 = >单”。看到从文件中读为更多的信息。

抵消

标量的从零开始的位置指定文件中的第一个数据元素。这个值代表了从一开始的文件的字节数的数据开始。

交错

格式的数据存储,指定这些值之一:

  • “bsq”——Band-Sequential

  • “比尔”——Band-Interleaved-by-Line

  • “毕普”——Band-Interleaved-by-Pixel

关于这些交错的方法的更多信息,请参阅multibandwrite参考页面。

byteorder

特征向量或字符串标量指定字节次序(机格式),数据存储等

  • “ieee-le”——低位优先

  • “ieee-be”——高位优先

看到打开外部文件支持的格式的完整列表。万博1manbetx

构造子集参数

您可以指定三个构造子集参数。每个构造子集参数是一个三元素单元阵列,{昏暗的,方法,指数},在那里

参数

描述

昏暗的

维子集。指定为任何这些价值观:

  • “列”

  • “行”

  • “乐队”

方法

构造子集的方法。指定为这两种价值观:

  • “直接”

  • “范围”

如果你离开了这个元素单元阵列的子集,multibandread使用“直接”作为默认。

指数

如果方法“直接”,指数是一个向量指定索引读带尺寸。

如果方法“范围”,指数是一个三元素向量的(开始、增量、停止)指定范围和步长沿维度中指定阅读昏暗的。如果指数是一个双元素向量,multibandread假设的价值增量1

例子

示例1

设置初始参数数据集。

行= 3;关口= 3;乐队= 5;文件名= tempname;

定义的数据集。

fid = fopen(文件名,' w ', ' ieee-le ');写入文件(fid, 1:行*关口*乐队,“双”);文件关闭(fid);

阅读其他乐队使用Band-Sequential格式的数据。

im1 = multibandread(文件名,(行关口乐队),…“双”,0,‘bsq’,‘ieee-le’,……{“乐队”、“范围”,[1 2乐队]})

阅读使用Band-Interleaved-by-Pixel的前两行和列数据格式。

im2 = multibandread(文件名,(行关口乐队),…“双”,0,“毕普”、“ieee-le”,…{“行”、“范围”,[1 - 2]},…{“列”、“范围”,[1 - 2]})

使用Band-Interleaved-by-Line读取的数据格式。

im3 = multibandread(文件名,(行关口乐队),…“双”,0,‘如果’,‘ieee-le’)

删除这个示例中创建的文件。

删除(文件名);

示例2

int16基本脉冲电平符合的数据文件tst0012.fits,从74880字节。

im4 = multibandread (tst0012。适合的,[31 73 5],…“int16”, 74880年,‘如果’,‘ieee-be’,……{“乐队”、“范围”,[1 3]});im5 =双(im4) / max (max (max (im4)));显示亮度图像(im5);

版本历史

之前介绍过的R2006a