exponenta event banner

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' аргумент пары имя-значение, необходимо иметь R2021a MATLAB или более позднюю версию.

    Примечание

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

    Примеры

    свернуть все

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

    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)

    Типы данных: logical

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

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

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

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

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

    свернуть все

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

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

    См. также

    | | |

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