multibandread
バイナリ ファイルからバンドインターリーブ データの読み込み
構文
X = multibandread(filename,size,precision,offset,interleave,byteorder)
X = multibandread(...,subset1,subset2,subset3)
説明
X = multibandread(filename,size,precision,offset,interleave,byteorder)
は、バイナリ ファイル filename
からバンド順データ並び (BSQ)、ライン挟み込みバンド並び (BIL)、または画素挟み込みバンド並び (BIP) データを読み取ります。filename
入力は文字ベクトルまたは string スカラーとして指定します。この関数は、以下の図に示すような 3 次元配列の 3 番目の次元として帯域 (band) を定義します。
multibandread
のパラメーターを使用すると、読み取る帯域など、読み取り操作の各種の側面を指定できます。詳細については、パラメーターを参照してください。
1 つの帯域のみを読み込む場合、X
は 2 次元配列になります。帯域が複数の場合、X は 3 次元配列になります。既定の設定では、X
のデータ型は double
になります。precision
パラメーターを使用して、他のデータ型を指定することができます。
X = multibandread(...,subset1,subset2,subset3)
は、ファイル内のデータの一部を読み取ります。3 つのサブセット化パラメーターを使用して、行、列、帯域に関する次元に合ったデータ サブセットを指定できます。詳細については、サブセット化パラメーターを参照してください。
メモ
BSQ、BIL、BIP ファイル以外にも、マルチバンド イメージは、TIFF ファイル形式を使って保存することができます。その場合、関数 imread
を使用してデータをインポートします。
パラメーター
次の表で、multibandread
が受け入れられる引数を説明します。
引数 | 説明 |
---|---|
| 読み取るファイル名を含む文字ベクトルまたは string スカラー。 |
|
データ全体が読み込まれる場合、これはデータの次元になります。 |
| 読み込むデータの形式を指定する文字ベクトルまたは string スカラー。たとえば、 メモ: |
| ファイル内の最初のデータ要素の位置を、0 ベースで指定したスカラー。この値は、ファイルの先頭からデータが始まる位置までをバイト数で表します。 |
| データの保存形式。次のいずれかの値として指定します。
これらのインターリーブ法の詳細については、 |
| データを保存するバイト順序 (マシン形式)。次のような文字ベクトルまたは string スカラーで指定します。
サポートしている形式の一覧に関する詳細については、関数 |
サブセット化パラメーター
3 つのサブセット化パラメーターを指定することができます。個々のサブセット化パラメーターは、3 要素の cell 配列 {
になります。dim
,method
,index}
パラメーター | 説明 |
---|---|
| サブセット化を行う次元。次のいずれかの値として指定します。
|
| サブセット化の手法。次のいずれかの値として指定します。
サブセット cell 配列の中からこの要素を省略すると、 |
|
|
例
例 1
データセットに対して初期パラメーターを設定します。
rows=3; cols=3; bands=5; filename = tempname;
データセットを定義します。
fid = fopen(filename, 'w', 'ieee-le'); fwrite(fid, 1:rows*cols*bands, 'double'); fclose(fid);
バンド順データ並び形式を使用して、その他の帯域のデータを読み取ります。
im1 = multibandread(filename, [rows cols bands], ... 'double', 0, 'bsq', 'ieee-le', ... {'Band', 'Range', [1 2 bands]} )
最初の 2 行 2 列 のデータを画素挟み込みバンド並び形式を使用して読み取ります。
im2 = multibandread(filename, [rows cols bands], ... 'double', 0, 'bip', 'ieee-le', ... {'Row', 'Range', [1 2]}, ... {'Column', 'Range', [1 2]} )
ライン挟み込みバンド並び形式を使用してデータを読み取ります。
im3 = multibandread(filename, [rows cols bands], ... 'double', 0, 'bil', 'ieee-le')
この例で作成されたファイルを削除します。
delete(filename);
例 2
FITS ファイル tst0012.fits
の 74880 バイトから始めて int16
BIL データを読み込みます。
im4 = multibandread('tst0012.fits', [31 73 5], ... 'int16', 74880, 'bil', 'ieee-be', ... {'Band', 'Range', [1 3]} ); im5 = double(im4)/max(max(max(im4))); imagesc(im5);
バージョン履歴
R2006a より前に導入
参考
fread
| fwrite
| imread
| memmapfile
| multibandwrite