removeBands

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

    Описание

    пример

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

    пример

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

    Примечание

    Эта функция требует Image Processing Toolbox™ Гиперспектральная Библиотека Обработки изображений. Можно установить Image Processing Toolbox Гиперспектральная Библиотека Обработки изображений из 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]
    
    

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

    endmembers = fippi(hcube,5);

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

    [~,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 является количеством областей значений длины волны, чтобы удалить из входных данных. Каждая строка имеет форму [min W W макс.]. min W и W макс. являются минимумом и максимальными длинами волн областей значений, чтобы удалить. По крайней мере один указанный диапазон длины волны должен перекрыть значение длины волны по крайней мере одного диапазона во входе hypercube объект.

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

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

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

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

    свернуть все

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

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

    | | | |

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