correctOOB

Откорректируйте внеполосный эффект с помощью датчика спектральный ответ

    Описание

    пример

    newhcube = correctOOB(hcube,spectralResponse) корректирует внеполосный (OOB) эффект во входных данных о спутнике при помощи спектральных характеристик ответа датчика. Этот метод подходит для коррекции OOB в многоспектральных спутниковых данных.

    Используйте эту функцию, чтобы откорректировать эффекты OOB по различным областям, таким как чистые воды, мутные воды, зеленая растительность, песок и почва. Этот метод дает лучшие результаты, если входные данные компенсируются рассеивание аэрозоля и Рейли. Чтобы измерить эффект OOB на сценах с большими водными телами, необходимо сначала вычислить воду, оставив спектры сияния из входных данных о спутнике.

    пример

    [newhcube,oobEffect] = correctOOB(hcube,spectralResponse) также возвращает относительный эффект OOB для каждого диапазона.

    пример

    [___] = correctOOB(hcube,spectralResponse,'RegionMask',mask) задает маску области при помощи аргумента пары "имя-значение" 'RegionMask'. Маска области указывает на гомогенные области во входных данных о спутнике.

    newhcube = correctOOB(___,'BlockSize',blocksize) задает размер блока для обработки блока гиперспектрального куба данных при помощи аргумента пары "имя-значение" 'BlockSize'. Можно задать 'BlockSize' аргумент пары "имя-значение" в дополнение к входным параметрам в предыдущих синтаксисах.

    Функция делит входное изображение на отличные блоки, процессы каждый блок, и затем конкатенирует обработанный выход каждого блока, чтобы сформировать выходную матрицу. Гиперспектральные изображения являются наборами многомерных данных, которые могут быть слишком большими, чтобы поместиться в системную память в их полноте. Это может заставить систему исчерпывать память при выполнении correctOOB функция. Если вы сталкиваетесь с такой проблемой, выполняете обработку блока при помощи этого синтаксиса.

    Например, correctOOB(hcube,spectralResponse,'BlockSize',[50 50]) делит входное изображение на неперекрывающиеся блоки размера 50 50 и затем выполняет внеполосную коррекцию на каждом блоке.

    Примечание

    Выполнять обработку блока путем определения 'BlockSize' аргумент пары "имя-значение", у вас должен быть MATLAB® R2021a или более поздний релиз.

    Примечание

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

    Примеры

    свернуть все

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

    hcube = hypercube('LC08_L1TP_097070_20201101_20201101_01_cropped.dat');

    Преобразуйте пиксельные значения от цифровых чисел до значений сияния верхней части атмосферы (TOA).

    hcube = dn2radiance(hcube);

    Оценка удаленно обнаруженный водный коэффициент отражения.

    [rrshcube,mask] = rrs(hcube);

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

    spectralResponse = readtable('spectralResponse.txt');
    spectralResponse = table2array(spectralResponse);

    Выполните коррекцию OOB с помощью пикселей чистой воды, заданных маской области.

    [newhcube,oobEffect] = correctOOB(rrshcube,spectralResponse,'RegionMask',mask);

    Оцените изображения RGB входа, и OOB откорректировал выходные данные. Увеличьте контрастность изображений путем применения контрастного протяжения.

    imgIn = colorize(hcube,'Method','rgb','ContrastStretching',true);
    imgOut = colorize(newhcube,'Method','rgb','ContrastStretching',true);

    Отобразите вход, и OOB откорректировал выходные изображения.

    figure
    montage({imgIn,imgOut})
    title('Input Image | OOB Corrected Image')

    Входные параметры

    свернуть все

    Введите спутниковые данные в виде hypercube объект. Функции читают куб данных из DataCube свойство объекта. Куб данных имеет размер M-by-N-by-C. C является количеством диапазонов во входных данных о спутнике.

    Датчик спектральный ответ в виде матрицы или таблицы. Размером матрицы или таблицы должен быть K-by-C+1. Первый столбец матрицы или таблица содержат значения длины волны, и спектральное разрешение составляет 1 нм.

    Можно загрузить спектральный ответ для различных датчиков от https://oceancolor.gsfc.nasa.gov/docs/rsr/rsr_tables/.

    Маска области, указывающая на гомогенные области в виде матрицы размера M-by-N. Маска области является бинарным изображением со значениями интенсивности 0 и 1. Области со значением интенсивности 1 соответствуют гомогенным областям во входных данных о спутнике.

    Пример: correctOOB(hcube,spectralResponse,'RegionMask',mask)

    Типы данных: логический

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

    • Если blocksize значение слишком мало, использование памяти функции уменьшает за счет увеличенного времени выполнения.

    • Если blocksize значение является большим или равным входному размеру изображения, время выполнения уменьшает за счет увеличенного использования памяти.

    Пример: 'BlockSize',[20 20] задает размер каждого блока данных как 20 20.

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

    свернуть все

    Внеполосные исправленные данные, возвращенные как hypercube.

    Внеполосный эффект для каждой полосы, возвращенной как C - вектор элемента. Внеполосный эффект для каждого диапазона измеряется как относительная разница между значениями гомогенных пикселей области во входных данных hcube и исправленные данные newhcube.

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

    | | |

    Введенный в R2020b