Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

selectBands

最も情報量の多いバンドの選択

説明

newhcube = selectBands(hcube,endmembers) は直交空間投影法を使用してハイパースペクトル データ キューブの最も情報量の多いバンドを選択します [1]。この関数は、最も情報量の多いバンドのみのデータを含む新しい hypercube オブジェクトを返します。

メモ

  • 前処理として、関数は最も情報量の多いバンドを計算する前に、水の吸収と S/N 比 (SNR) の低いバンドを削除します。

  • 計算量を削減するために、関数は前処理されたデータ キューブ内にあるピクセル値の 10% のみを考慮して最も情報量の多いバンドを計算します。これらの値はランダムに選択されます。また、この関数でランダムに選択してもエンドメンバーが削除されることはありません。

[newhcube,band] = selectBands(hcube,endmembers) はハイパースペクトル データ キューブ内の最も情報量の多いバンドのバンド番号も返します。

さらに、[___] = selectBands(hcube,endmembers,'NumberOfBands',numBands) では、前の構文の引数から成る任意の組み合わせに加えて、入力データ キューブから選択する最も情報量の多いバンドの数も指定します。

メモ

この関数には Image Processing Toolbox™ Hyperspectral Imaging Library が必要です。Image Processing Toolbox Hyperspectral Imaging Library はアドオン エクスプローラーからインストールできます。アドオンのインストールの詳細については、アドオンの入手と管理を参照してください。

すべて折りたたむ

ハイパースペクトル データをワークスペースに読み取ります。

hcube = hypercube('paviaU.dat');

FIPPI アルゴリズムを使用してデータ キューブのエンドメンバーを推定します。

endmembers = fippi(hcube,9);

最も情報量の多い 10 個のバンドで構成される新しい hypercube を作成します。

newhcube = selectBands(hcube,endmembers,'NumberOfBands',10);

入力引数

すべて折りたたむ

入力ハイパースペクトル データ。hypercube オブジェクトとして指定します。hypercube オブジェクトの DataCube プロパティにはハイパースペクトル データ キューブが格納されます。

エンドメンバーのスペクトル シグネチャ。サイズが C 行 K 列の行列として指定します。C はハイパースペクトル データ キューブ内のスペクトル バンドの数、K はハイパースペクトル データ キューブのエンドメンバーの数です。関数 fippippi、または nfindr を使用して、ハイパースペクトル データ キューブのエンドメンバーを求めます。

データ型: single | double

データ キューブから選択する最も情報量の多いバンドの数。スカラーとして指定します。

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

出力引数

すべて折りたたむ

出力ハイパースペクトル データ。hypercube オブジェクトとして返されます。

入力データ キューブ内の最も情報量の多いバンドのスペクトル バンド番号。正の整数または正の整数のベクトルとして返されます。

データ型: double

参照

[1] Du, Qian, and He Yang. “Similarity-Based Unsupervised Band Selection for Hyperspectral Image Analysis.” IEEE® Geoscience and Remote Sensing Letters, Vol. 5, no. 4 (October 2008): 564–68. https://doi.org/10.1109/LGRS.2008.2000619.

R2020a で導入