主要内容

multibandread

从二进制文件中读取带交错数据

语法

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

描述

X = multibandread(文件名、大小、精度、抵消、交错、byteorder)从二进制文件中读取频带顺序(BSQ)、行交错(BIL)或像素交错(BIP)数据文件名.的文件名输入被指定为字符向量或字符串标量。这个函数定义乐队作为三维阵列的第三维,如图所示。

的参数multibandread指定读操作的许多方面,例如要读哪些波段。看到参数为更多的信息。

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

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

请注意

除了BSQ、BIL和BIP文件外,还可以使用TIFF文件格式存储多频带图像。在这种情况下,使用theimread命令,导入数据。

参数

这个表描述了被接受的参数multibandread

论点

描述

文件名

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

大小

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

  • 高度是总行数吗

  • 宽度是每行元素的总数吗

  • N为波段的总数。

如果数据被全部读取,这将是数据的维数。

精度

指定要读取的数据格式的字符向量或字符串标量,例如“uint8”“双”“整数* 4”,或任何由金宝app从文件中读函数。

注意:您也可以使用精度参数指定输出数据的格式。例如,阅读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”——高位优先

看到打开外部文件获取支持的格式的完整列表。金宝app

构造子集参数

最多可以指定三个子参数。每个子集参数是一个三元素单元格数组,昏暗的方法,指数},在那里

参数

描述

昏暗的

子集的维数。指定为以下值中的任何一个:

  • “列”

  • “行”

  • “乐队”

方法

构造子集的方法。指定为以下值之一:

  • “直接”

  • “范围”

如果你忽略子集单元格数组中的这个元素,multibandread使用“直接”作为默认。

指数

如果方法“直接”指数是一个向量,指定沿着Band维度读取的索引。

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

例子

示例1

设置数据集的初始参数。

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

定义数据集。

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

使用频带顺序格式读取每一个其他频带的数据。

Im1 = multibandread(filename, [rows cols bands],…)'double', 0, 'bsq', 'ieee-le',…{'Band', 'Range', [1 2 Band]})

使用像素带交错格式读取数据的前两行和列。

Im2 = multibandread(filename, [rows cols bands],…)'double', 0, 'bip', ' ee-le',…{'Row', 'Range',[1 2]},…{'Column', 'Range', [1 2]})

使用逐行带交错格式读取数据。

Im3 = multibandread(filename, [rows cols bands],…)'double', 0, 'bil', ' ee-le')

删除在本例中创建的文件。

删除(文件名);

示例2

int16来自FITS文件的BIL数据tst0012.fits,从字节74880开始。

im4 = multibandread (tst0012。适合,[31 73 5],…'int16', 74880, 'bil', 'ieee-be',…{'Band', 'Range', [1 3]});im5 =双(im4) / max (max (max (im4)));显示亮度图像(im5);
之前介绍过的R2006a