Main Content

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

ndvi

    説明

    output = ndvi(hcube) はデータ キューブ内の各ピクセルの正規化植生指標 (NDVI) 値を計算し、NDVI イメージを返します。この NDVI イメージには入力ハイパースペクトル データの植被領域が表示されます。関数はデータ キューブ内の赤 (R) の帯域と近赤外 (NIR) バンド イメージを使用して NDVI 値を計算します。関数 ndvi は赤帯域のイメージに 670 nm、NIR バンド イメージに 800 nm 帯域の反射率値を使用します。

    メモ

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

    すべて折りたたむ

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

    hcube = hypercube('indian_pines.dat');

    データ キューブ内のピクセルごとに NDVI 値を計算します。

    ndviImg = ndvi(hcube);

    関数 colorize を使用して、元のデータ キューブからコントラスト ストレッチを行った RGB イメージを推定します。

    rgbImg = colorize(hcube,'Method','RGB','ContrastStretching',true);

    元のイメージと NDVI イメージを表示します。

    fig = figure('Position',[0 0 1200 600]);
    axes1 = axes('Parent',fig,'Position',[0 0.1 0.4 0.8]);
    imshow(rgbImg,'Parent',axes1)
    title('RGB Image of Data Cube')
    axes2 = axes('Parent',fig,'Position',[0.45 0.1 0.4 0.8]);
    imagesc(ndviImg,'Parent',axes2)
    colorbar
    title('NDVI Image')

    通常、植生領域の NDVI 値は 0.2 ~ 0.8 です。0.2 以下の NDVI 値は植生がないことを示します。NDVI イメージのしきい値処理を実行し、植生領域をセグメント化します。しきい値を指定します。

    threshold = 0.2;

    指定したしきい値以上のスコアを持つピクセルについて、強度値 1 のバイナリ イメージを生成します。その他のすべてのピクセルでは値が 0 です。値が 1 のバイナリ イメージ内の領域は、データ キューブ内でしきい値より大きい NDVI 値を持つ植生領域に対応します。

    bw = ndviImg > threshold;

    RGB イメージ上にバイナリ イメージを重ね合わせ、重ね合わせたイメージを表示します。

    overlayImg = imoverlay(rgbImg,bw,[0 1 0]);
    figure
    imagesc(overlayImg)
    title('Vegetation Region Overlaid on RGB Image')

    スペクトル バンドのピクセルの総数および 0.2 より大きい NDVI 値を持つピクセルの数に基づいて植被率を計算します。

    numVeg = find(bw == 1);
    imgSize = size(hcube.DataCube,1)*size(hcube.DataCube,2);
    vegetationCover = length(numVeg)/imgSize
    vegetationCover = 0.5696
    

    入力引数

    すべて折りたたむ

    入力ハイパースペクトル データ。hypercube オブジェクトとして指定します。関数はオブジェクトの DataCube プロパティからハイパースペクトル データ キューブを読み取ってから、各ピクセルの NDVI 値を計算します。

    出力引数

    すべて折りたたむ

    出力 NDVI イメージ。サイズ M 行 N 列の行列として返されます。M および N は入力データ キューブの空間次元です。入力データ キューブのデータ型が double の場合、出力データ型も double です。それ以外の場合、出力データ型は single です。

    関数は次のようにピクセルごとに NDVI 値として計算します。

    NDVI=NIRRNIR+R,

    値は [-1, 1] の範囲に収まります。値が 1 に近い場合は植生が健康ですが、0 に近い場合は植生が健康ではないことを表します。-1 は植生がないことを示しています。

    データ型: single | double

    参照

    [1] Haboudane, D. “Hyperspectral Vegetation Indices and Novel Algorithms for Predicting Green LAI of Crop Canopies: Modeling and Validation in the Context of Precision Agriculture.” Remote Sensing of Environment 90, no. 3 (April 15, 2004): 337–52. https://doi.org/10.1016/j.rse.2003.12.013.

    R2020a で導入