estimateAbundanceLS

Оцените карты распространенности

    Описание

    пример

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

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

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

    пример

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

    Примечание

    Эта функция требует Image Processing Toolbox™ Гиперспектральная Библиотека Обработки изображений. Можно установить Image Processing Toolbox Гиперспектральная Библиотека Обработки изображений из Add-On Explorer. Для получения дополнительной информации об установке дополнений, смотрите, Получают и Управляют Дополнениями.

    Примеры

    свернуть все

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

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

    Постройте endmember спектры.

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

    Оцените карты распространенности для endmember спектров.

    abundanceMap = estimateAbundanceLS(dataCube,endmembers);

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

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

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

    hcube = hypercube('jasperRidge2_R198.hdr');

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

    endmembers = nfindr(hcube,6);

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

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

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

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

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

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

    Отобразите карты распространенности для endmember спектров. Порядок карт распространенности совпадает с порядком endmembers в 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

    Подписи Endmember в виде матрицы размера C-by-P., где C является количеством диапазонов во входе гиперспектральные данные и P, являются количеством endmember спектральных подписей.

    Типы данных: 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] Keshava, N. и Дж.Ф. Мастард. “Спектральное Несмешивание”. Журнал 19 Обработки сигналов IEEE, № 1 (январь 2002): 44–57. https://doi.org/10.1109/79.974727.

    [2] Кей, Стивен М. Основные принципы статистической обработки сигналов. Ряд обработки сигналов Prentice Hall. Englewood Cliffs, Нью-Джерси: PTR Prentice Hall, 1993.

    Смотрите также

    | | |

    Введенный в R2020a