メインコンテンツ

countEndmembersHFC

エンドメンバー数の検出

    説明

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

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

    メモ

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

    Hyperspectral Imaging Library for Image Processing Toolbox は、MATLAB® Online™ および MATLAB Mobile™ によってサポートされないため、デスクトップの MATLAB が必要です。

    すべて折りたたむ

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

    hcube = imhypercube("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")   

    Figure contains an axes object. The axes object with title Number of Endmembers: 13, xlabel Band Number, ylabel Data Values contains 13 objects of type line.

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

    hcube = imhypercube("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")   

    Figure contains an axes object. The axes object with title Number of Endmembers: 15, xlabel Band Number, ylabel Data Values contains 15 objects of type line.

    入力引数

    すべて折りたたむ

    入力ハイパースペクトル データ。サイズが M x N x C のハイパースペクトル データ キューブを表す 3 次元数値配列または hypercube オブジェクトとして指定します。ハイパースペクトル データ キューブは実数で非スパースでなければなりません。

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

    名前と値の引数

    すべて折りたたむ

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

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

    例: countEndmembersHFC(inputData,NoiseWhiten=false)

    偽警報の確率。範囲 (0, 1] の正のスカラーとして指定します。

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

    ノイズ白色化の実行。数値または 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 で導入