Identificar los espectros de vegetación y no vegetación
Este ejemplo muestra cómo:
Utilizar datos espectrales 2D como un hipercubo para las funciones hiperespectrales.
Separar los espectros de vegetación y no vegetación utilizando la función
ndvi.
Este ejemplo requiere la biblioteca Hyperspectral Imaging Library for Image Processing Toolbox™. Puede instalar la biblioteca Hyperspectral Imaging Library for Image Processing Toolbox desde Add-On Explorer. Para obtener más información sobre la instalación de complementos, consulte Obtener y administrar complementos. La biblioteca Hyperspectral Imaging Library for Image Processing Toolbox requiere la versión de escritorio de MATLAB®, ya que MATLAB® Online™ y MATLAB® Mobile™ no son compatibles con la biblioteca.
Cargar datos espectrales 2D
Cargue datos espectrales 2D que contengan 20 miembros terminales del conjunto de datos Indian Pines en el espacio de trabajo.
load("indian_pines_endmembers_20.mat")Cargue los valores de longitud de onda para cada banda del conjunto de datos Indian Pines en el espacio de trabajo.
load("indian_pines_wavelength.mat")Preparar los datos de prueba para su uso en funciones hiperespectrales
Cambie la forma de los datos datos espectrales 2D a datos de volumen 3D utilizando la función reshape.
[numSpectra,spectralDim] = size(endmembers); dataCube = reshape(endmembers,[numSpectra 1 spectralDim]);
Cree un objeto hypercube 3D, con una dimensión única, especificando los datos de volumen 3D dataCube y la información de longitud de onda wavelength en la función hypercube.
hcube = imhypercube(dataCube,wavelength);
Calcular el NDVI para separar los espectros de vegetación y no vegetación
Calcule el valor del NDVI para cada espectro en el objeto hypercube.
ndviVal = ndvi(hcube);
Los espectros de vegetación suelen tener valores de NDVI mayores que cero y los espectros de no vegetación suelen tener valores de NDVI menores que cero. Utilice umbrales para separar los espectros de vegetación y no vegetación.
index = ndviVal > 0;
Represente los miembros terminales de vegetación y no vegetación.
subplot(2,1,1) plot(endmembers(index,:)') title("Vegetation endmembers") xlabel("Bands") ylabel("Reflectance Values") axis tight subplot(2,1,2) plot(endmembers(~index,:)') title("Non-Vegetation endmembers") xlabel("Bands") ylabel("Reflectance Values") axis tight

Consulte también
hypercube | spectralMatch | ndvi