exponenta event banner

removeBands

Удаление спектральных диапазонов из куба данных

    Описание

    пример

    newhcube = removeBands(hcube,'Wavelength',wlrange) удаляет спектральные полосы из куба данных в заданном диапазоне длин волн. Функция возвращает новый hypercube объект с оставшимися длинами волн, их информацией метаданных и соответствующими спектральными полосами из исходного куба данных.

    пример

    newhcube = removeBands(hcube,'BandNumber',band) удаляет спектральные полосы с заданными номерами спектральных полос из гиперспектрального куба данных.

    Примечание

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

    Примеры

    свернуть все

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

    hcube = hypercube('paviaU.dat');

    Проверьте свойства hypercube объект.

    hcube
    hcube = 
      hypercube with properties:
    
          DataCube: [610×340×103 double]
        Wavelength: [103×1 double]
          Metadata: [1×1 struct]
    
    

    Найдите спектральный диапазон длин волн гиперспектрального куба данных.

    range = [min(hcube.Wavelength) max(hcube.Wavelength)]
    range = 1×2
    
       430   838
    
    

    Укажите диапазоны длин волн, которые должны быть удалены из гиперспектрального куба данных.

    wlrange = [410 450; 620 850];

    Удалите спектральные полосы, находящиеся в заданных диапазонах длин волн. Функция возвращает новый hypercube объект без удаленных полос.

    newhcube = removeBands(hcube,'Wavelength',wlrange)
    newhcube = 
      hypercube with properties:
    
          DataCube: [610×340×42 double]
        Wavelength: [42×1 double]
          Metadata: [1×1 struct]
    
    

    Постройте график исходного и нового значений длины волны.

    figure
    plot(hcube.Wavelength,'o')
    hold on
    plot(newhcube.Wavelength,'or')
    xlabel('Band Number')
    ylabel('Wavelength')
    legend('Original Values','New Values','Location','SouthEast')

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

    hcube = hypercube('paviaU.dat')
    hcube = 
      hypercube with properties:
    
          DataCube: [610×340×103 double]
        Wavelength: [103×1 double]
          Metadata: [1×1 struct]
    
    

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

    endmembers = fippi(hcube,5);

    Определите 10 наиболее информативных полос куба входных данных на основе спектров конечных элементов.

    [~,informativeband] = selectBands(hcube,endmembers,'NumberOfBands',10);

    Найдите номера полос неинформативных полос куба данных, используя номера полос информативных полос.

    band = setdiff(1:size(hcube.DataCube,3),informativeband);

    Удалите неинформативные области из гиперспектрального куба данных. Функция возвращает новый hypercube объект только с наиболее информативными полосами.

    newhcube = removeBands(hcube,'BandNumber',band)
    newhcube = 
      hypercube with properties:
    
          DataCube: [610×340×10 double]
        Wavelength: [10×1 double]
          Metadata: [1×1 struct]
    
    

    Постройте график исходного и нового значений длины волны.

    figure
    plot(hcube.Wavelength,'o')
    hold on
    plot(newhcube.Wavelength,'or')
    xlabel('Band Number')
    ylabel('Wavelength')
    legend('Original Values','New Values','Location','SouthEast')

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

    свернуть все

    Входные гиперспектральные данные, указанные как hypercube объект. DataCube имущества hypercube объект сохраняет гиперспектральный куб данных.

    Удаляемый диапазон длин волн, заданный как матрица K-by-2. K - число диапазонов длин волн, удаляемых из входных данных. Каждая строка имеет вид [Wmin Wmax]. Wmin и Wmax - минимальная и максимальная длины волн удаляемых диапазонов. По меньшей мере один заданный диапазон длин волн должен перекрывать значение длины волны по меньшей мере одного спектрального диапазона на входе. hypercube объект.

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

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

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

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

    свернуть все

    Вывод гиперспектральных данных, возвращаемых в виде hypercube объект.

    См. также

    | | | |

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