Main Content

countEndmembersHFC

エンドメンバー数の検出

R2020a 以降

    説明

    numEndmembers = countEndmembersHFC(inputData) は、ノイズ白色化 Harsanyi–Farrand–Chang (NWHFC) 法を使用して、ハイパースペクトル データ キューブ内に存在するエンドメンバー数を検出します。

    numEndmembers = countEndmembersHFC(inputData,Name,Value) は、1 つ以上の名前と値のペアの引数を使用して追加のオプションを指定します。たとえば、'NoiseWhiten',false はエンドメンバーの抽出前にデータのノイズ白色化を実行しません。

    メモ

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

    Image Processing Toolbox Hyperspectral Imaging LibraryMATLAB® Online™ または MATLAB Mobile™ ではサポートされないため、デスクトップの MATLAB が必要となります。

    すべて折りたたむ

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

    hcube = hypercube('jasperRidge2_R198.hdr');

    NWHFC 法を使用してハイパースペクトル データ内のエンドメンバー数を検出します。

    numEndmembers = countEndmembersHFC(hcube);

    N-FINDR 法を使用してエンドメンバー スペクトルを推定します。

    endmembers = nfindr(hcube,numEndmembers);

    エンドメンバー スペクトルをプロットします。

    figure
    plot(endmembers)
    title(['Number of Endmembers: ' num2str(numEndmembers)])
    xlabel('Band Number')
    ylabel('Data Values')   

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

    hcube = hypercube('jasperRidge2_R198.hdr');

    HFC 法を使用してハイパースペクトル データ内のエンドメンバー数を検出します。HFC 法を使用するには、'NoiseWhiten' パラメーター値を false に設定します。

    numEndmembers = countEndmembersHFC(hcube,'NoiseWhiten',false);

    N-FINDR 法を使用してエンドメンバー スペクトルを推定します。

    endmembers = nfindr(hcube,numEndmembers);

    エンドメンバー スペクトルをプロットします。

    figure
    plot(endmembers)
    title(['Number of Endmembers: ' num2str(numEndmembers)])
    xlabel('Band Number')
    ylabel('Data Values')   

    入力引数

    すべて折りたたむ

    入力ハイパースペクトル データ。サイズが M x N x C のハイパースペクトル データ キューブを表す 3 次元数値配列または hypercube オブジェクトとして指定します。入力が hypercube オブジェクトの場合、関数はそのオブジェクトの DataCube プロパティに格納されたデータ キューブを読み取ります。ハイパースペクトル データ キューブは実数で非スパースでなければなりません。

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

    名前と値の引数

    オプションの引数のペアを Name1=Value1,...,NameN=ValueN として指定します。ここで、Name は引数名で、Value は対応する値です。名前と値の引数は他の引数の後に指定しなければなりませんが、ペアの順序は重要ではありません。

    R2021a より前では、コンマを使用して名前と値をそれぞれ区切り、Name を引用符で囲みます。

    例: countEndmembersHFC(inputData,'NoiseWhiten',false)

    偽警報の確率。'PFA' と範囲 (0, 1] の正のスカラーから構成されるコンマ区切りのペアとして指定します。

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

    ノイズ白色化の実行。'NoiseWhiten' と数値または logical 1 (true) または 0 (false) で構成されるコンマ区切りペアとして指定します。

    • true または 1 — エンドメンバー数の計算前に入力データのノイズ白色化を実行します。この手法が NWHFC 法です。

    • false または 0 — エンドメンバー数の計算前に入力データのノイズ白色化を実行しません。この手法が Harsanyi–Farrand–Chang (HFC) 法です。

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

    出力引数

    すべて折りたたむ

    ハイパースペクトル データ内のエンドメンバー数。正の数値スカラーとして返されます。

    データ型: double

    参照

    [1] Chang, C.-I., and Q. Du. “Estimation of Number of Spectrally Distinct Signal Sources in Hyperspectral Imagery.” IEEE Transactions on Geoscience and Remote Sensing 42, no. 3 (March 2004): 608–19. https://doi.org/10.1109/TGRS.2003.819189.

    バージョン履歴

    R2020a で導入