exponenta event banner

estimateAbundanceLS

Оценка карт изобилия

    Описание

    пример

    abundanceMap = estimateAbundanceLS(inputData,endmembers) оценивает карты изобилия конечных элементов в гиперспектральном кубе данных методом наименьших квадратов.

    Гиперспектральный куб данных может содержать как чистые, так и смешанные пикселы. Чистые пиксели показывают спектральные характеристики одного класса, в то время как смешанные пиксели показывают спектральные характеристики нескольких классов. Спектральные сигнатуры чистых пикселей содержат конечные элементы, которые идентифицируют уникальные классы, присутствующие в гиперспектральном кубе данных. Спектральная сигнатура смешанных пикселей может быть линейной комбинацией двух или более спектров конечных элементов. Карта изобилия идентифицирует долю каждого конечного элемента, присутствующего в спектрах каждого пикселя. Для гиперспектрального куба данных пространственных измерений M-by-N, содержащего P конечных элементов, существуют P карт изобилия, каждая размером M-by-N.

    Процесс оценки карты плотности известен как спектральное размешивание, которое представляет собой разложение спектров каждого пикселя на заданный набор спектров конечных элементов.

    пример

    abundanceMap = estimateAbundanceLS(___,'Method',estMethod) задает метод наименьших квадратов для оценки карт изобилия.

    Примечание

    Для выполнения этой функции требуется библиотека гиперспектральных изображений Toolbox™ обработки изображений. Можно установить библиотеку гиперспектральных изображений панели инструментов обработки изображений из проводника надстроек. Дополнительные сведения об установке надстроек см. в разделе Получение надстроек и управление ими.

    Примеры

    свернуть все

    Загрузите MAT-файл, содержащий гиперспектральный куб данных и сигнатуры конечных элементов, в рабочую область. Извлеките сигнатуры куба данных и конечных элементов.

    data = load('indian_pines.mat');
    dataCube = data.indian_pines;
    endmembers = data.signatures;

    Постройте график спектров конечных элементов.

    plot(endmembers)
    numEndMem = num2str(size(endmembers,2));
    title(['Number of Endmembers:' numEndMem])    

    Оцените карты плотности для спектров конечных элементов.

    abundanceMap = estimateAbundanceLS(dataCube,endmembers);

    Отображение карты плотности для каждого спектра конечных элементов. Порядок карт изобилия тот же, что и порядок конечных членов в endmembers вход.

    montage(abundanceMap,'Size',[4 4],'BorderSize',[10 10]);
    colormap default
    title('Abundance Maps for Endmembers');

    Считывание гиперспектральных данных в рабочую область.

    hcube = hypercube('jasperRidge2_R198.hdr');

    Извлеките шесть конечных элементов из гиперспектральных данных.

    endmembers = nfindr(hcube,6);

    Оцените карту изобилия для каждого конечного элемента с помощью метода полностью ограниченных наименьших квадратов.

    abundanceMap = estimateAbundanceLS(hcube.DataCube,endmembers,'Method','fcls');

    Оценка RGB-образа куба данных с помощью colorize функция.

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

    Отображение изображения RGB.

    figure
    imagesc(rgbImg)
    title('RGB Image of Data Cube')

    Отображение карт плотности для спектров конечных элементов. Порядок карт изобилия тот же, что и порядок конечных членов в endmembers входной аргумент.

    figure
    montage(abundanceMap(:,:,1:3),'Size',[1 3],'BorderSize',[20 20])
    colormap default
    colorbar
    title('Abundance Map for Endmember 1 | Abundance Map for Endmember 2 | Abundance Map for Endmember 3','FontSize',14)

    figure
    montage(abundanceMap(:,:,4:6),'Size',[1 3],'BorderSize',[20 20])
    colormap default
    colorbar
    title('Abundance Map for Endmember 4 | Abundance Map for Endmember 5 | Abundance Map for Endmember 6','FontSize',14)

    Входные аргументы

    свернуть все

    Входные гиперспектральные данные, указанные как 3-D числовой массив, представляющий собой куб гиперспектральных данных размером M-by-N-by-C или hypercube объект. Если входным значением является hypercube , функция считывает куб данных, хранящийся в DataCube свойства объекта. Гиперспектральный куб данных должен быть действительным и не разреженным.

    Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

    Сигнатуры конечных элементов, указанные как матрица размера C-by-P. где C - число спектральных полос во входных гиперспектральных данных, а P - число спектральных сигнатур конечных элементов.

    Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

    Метод оценки карт изобилия, указанный в качестве одного из этих значений.

    • 'ucls' - Метод неограниченных наименьших квадратов.

    • 'fcls' - Полностью ограниченный метод наименьших квадратов.

    • 'ncls' - метод ненегативных зависимых наименьших квадратов.

    Пример: estimateAbundanceLS(inputData,endmembers,'Method','ncls')

    Типы данных: char | string

    Выходные аргументы

    свернуть все

    Карты изобилия, возвращаемые в виде 3-D числового массива размера M-by-N-by-P.

    Типы данных: double

    Ссылки

    [1] Кешава, Н. и Дж. Ф. Горчица. «Спектральное размыкание». Журнал IEEE Signal Processing Magazine 19, No. 1 (январь 2002 года): 44-57. https://doi.org/10.1109/79.974727.

    [2] Кей, Стивен М. Основы обработки статистических сигналов. Серия обработки сигналов Prentice Hall. Энглвуд Клиффс, N.J.: Prentice-Hall PTR, 1993.

    См. также

    | | |

    Представлен в R2020a