主要内容

多班车

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

句法

x = multibardread(文件名,大小,精度,偏移,交错,byteorder)
X = MultiBardread(...,子集1,子集,子集3)

描述

x = multibardread(文件名,大小,精度,偏移,交错,byteorder)从二进制文件中读取频带顺序(BSQ),带交错的逐行线(BIL)或横耦合逐像素(BIP)数据文件名。这文件名输入被指定为字符向量或字符串标量。此功能定义乐队作为三维阵列中的第三维度,如图所示。

您可以使用参数多班车要指定读取操作的许多方面,例如要读取的频段。看参数了解更多信息。

X如果只读取一个频带,则是一个2-D阵列;否则是3-D。X作为数据类型阵列返回双倍的默认。使用精确参数将数据映射到不同的数据类型。

X = MultiBardread(...,子集1,子集,子集3)读取文件中的数据的子集。您可以使用多达三个子集参数来指定沿行,列和频带尺寸的数据子集。看子集参数了解更多信息。

笔记

除了BSQ,BIL和BIP文件之外,可以使用TIFF文件格式存储多频带图像。在这种情况下,使用Imread.用于导入数据的函数。

参数

此表介绍了所接受的参数多班车

争论

描述

文件名

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

尺寸

包含的整数的三元素矢量组成[高度,宽度,n], 在哪里

  • 高度是行的总数

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

  • N.是乐队的总数。

如果它完整读取,这将是数据的尺寸。

精确

字符矢量或字符串标量指定要读取的数据的格式,例如'uint8''双倍的''整数* 4',或支持的任何其他精确金宝app吓唬功能。

注意:您也可以使用精确参数指定输出数据的格式。例如,阅读uint8.数据和输出auint8.数组,指定精度'uint8 => uint8'(要么'* uint8')。阅读uint8.数据并将其输出在MATLAB中®单精度的软件,指定'uint8 =>单'。看吓唬了解更多信息。

抵消

标量指定文件中的第一个数据元素的零基于位置。此值表示文件开头的字节数到数据开始的位置。

交织

存储数据的格式,指定为其中一个值:

  • 'BSQ.' - 频段顺序

  • 'BIL'- 带交错逐行

  • 'bip'- Band-Internleaved-By-Pixel

有关这些交织方法的更多信息,请参阅多阵列参考页面。

byteOrder.

字符向量或字符串标量指定存储数据的字节排序(机器格式),例如

  • 'ieee-le'- 小endian

  • 'ieee-be'- Big-Endian

f有关支持格式的完整列表。金宝app

子集参数

您可以指定最多三个子集参数。每个子集参数是三元素单元阵列,{暗淡方法,指数}, 在哪里

范围

描述

暗淡

沿着子集的尺寸。指定为以下任何值:

  • '柱子'

  • '排'

  • '乐队'

方法

子集方法。指定为这些值中的任何一个:

  • '直接的'

  • '范围'

如果留下子集小区数组的此元素,多班车用途'直接的'作为默认值。

指数

如果方法'直接的'指数是一个矢量指定索引沿频带维度读取的索引。

如果方法'范围'指数是一个三个元素矢量[开始,增量,停止]指定沿着指定的维度读取的范围和步长暗淡。如果指数是一个双元素矢量,多班车假设价值增量1

例子

例1

设置数据集的初始参数。

行= 3;cols = 3;乐队= 5;filename = tempname;

定义数据集。

fid = fopen(文件名,'w','ieee-le');FWRITE(FID,1:行* COL *频段,'双');fclose(FID);

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

im1 = multibandread(文件名,[Rows cols频带],...'double',0,'bsq','ieee-le',... {'band','范围',[1 2频段]})

使用带交错逐个像素格式读取第一两行和数据列。

im2 = multibandread(filename,[Rows cols band],...'double',0,'bip','ieee-le',... {'行','范围',[1 2]}。.. {'列','范围',[1 2]})

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

im3 = multibandread(filename,[Rows Cols Band],...'double',0,'bil','Ieee-Le')

删除此示例中创建的文件。

删除(文件名);

例2.

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

im4 = multibandread('tst0012.fits',[31 73 5],...'int16',74880,'bil','Ieee-be',... {'乐队','范围',[1 3]});IM5 = DOUBLE(IM4)/ MAX(MAX(MAX(IM4)));ImagesC(IM5);

版本历史记录

在R2006A之前介绍