Main Content

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

countEndmembersHFC

エンドメンバー数の検出

    説明

    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 はアドオン エクスプローラーからインストールできます。アドオンのインストールの詳細については、アドオンの入手と管理を参照してください。

    すべて折りたたむ

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

    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

    名前と値のペアの引数

    オプションの引数 Name,Value のコンマ区切りペアを指定します。Name は引数名で、Value は対応する値です。Name は引用符で囲まなければなりません。Name1,Value1,...,NameN,ValueN のように、複数の名前と値のペアの引数を、任意の順番で指定できます。

    例: 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 で導入