removeBands

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

    Описание

    пример

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

    пример

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

    Примечание

    Эта функция требует библиотеки Image Processing Toolbox™ гиперспектральной визуализации. Можно установить библиотеку Image Processing Toolbox Hyperspectral Imaging Library из Add-On Explorer. Дополнительные сведения об установке дополнений см. в разделе Получение и управление Дополнений.

    Примеры

    свернуть все

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

    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 объект. The DataCube свойство hypercube объект хранит кубик гиперспектральных данных.

    Область значений длин волн для удаления, заданный как матрица K -by-2. K - количество областей значений длин волн, которые нужно удалить из входных данных. Каждая строка имеет форму [W min W max]. W min и W max являются минимальными и максимальными длинами волн областей значений, которые нужно удалить. По меньшей мере, один заданная область значений длины волны должен перекрывать значение длины волны, по меньшей мере , одной спектральной полосы в вход hypercube объект.

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

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

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

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

    свернуть все

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

    См. также

    | | | |

    Введенный в R2020a
    Для просмотра документации необходимо авторизоваться на сайте