exponenta event banner

reduceSmile

Уменьшение спектрального эффекта улыбки в гиперспектральном кубе данных

    Описание

    пример

    correctedData = reduceSmile(hcube) уменьшает спектральный эффект улыбки в гиперспектральных данных hcube путем усреднения значений пикселей каждой полосы вдоль спектрального размера с окном размера 3. Функция усредняет значения пикселей каждой полосы с соответствующими значениями пикселей предыдущей полосы и следующей полосы. Эффект спектральной улыбки возникает только в данных, захваченных с помощью гиперспектральных датчиков push-broom, таких как EO-1 Hyperion и SEBASS.

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

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

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

    Примечание

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

    correctedData = reduceSmile(___,Name,Value) указывает параметры, использующие один или несколько аргументов «имя-значение» в дополнение к входным аргументам в предыдущих синтаксисах. Например, 'Method','MNF' определяет выполнение коррекции улыбки с использованием метода преобразования на основе максимальной доли шума (MNF).

    Примечание

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

    Примеры

    свернуть все

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

    hCube =  hypercube('EO1H0440342002212110PY_cropped.dat');

    Обычно молекулы кислорода имеют сильные характеристики поглощения при длине волны 762 нм и вызывают спектральную улыбку. В датчике Hyperion EO-1 длина волны 762 нм соответствует полосе 41. Спектральный эффект улыбки в полосе 41 также влияет на полосы 40 и 42. Следовательно, вычисляют абсолютную разницу между значениями пикселей полос 40 и 42.

    originalData = hCube.DataCube;
    band40 = originalData(:,:,40);
    band42 = originalData(:,:,42);
    bandDiffBeforeCorr = imabsdiff(band40,band42);

    Отображение разностного изображения полос 40 и 42. Спектральный эффект улыбки появляется в виде градиента яркости слева направо на разностном изображении.

    imagesc(bandDiffBeforeCorr)
    axis image off
    title('Difference of Bands 40 and 42 Before Correction')
    colorbar

    Figure contains an axes. The axes with title Difference of Bands 40 and 42 Before Correction contains an object of type image.

    Укажите размер окна усреднения для использования вдоль спектрального размера.

    window = 5;

    Выполните уменьшение спектральной улыбки.

    correctedHcube = reduceSmile(hCube,'SpectralWindow',window);

    Вычислите и отобразите абсолютную разность скорректированных полос 40 и 42. Градиент в разностном изображении после коррекции улыбки отсутствует.

    correctedData = correctedHcube.DataCube;
    corrBand40 = correctedData(:,:,40);
    corrBand42 = correctedData(:,:,42);
    bandDiffAfterCorr = imabsdiff(corrBand40,corrBand42);
    imagesc(bandDiffAfterCorr)
    axis image off
    title('Difference of Bands 40 and 42 After Smile Correction')
    colorbar

    Figure contains an axes. The axes with title Difference of Bands 40 and 42 After Smile Correction contains an object of type image.

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

    свернуть все

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

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

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

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

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

    Аргументы пары «имя-значение»

    Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.

    Пример: reduceSmile(hcube,'Method','MNF')

    Метод коррекции спектральной улыбки, указанный как 'SpectralSmoothing' или 'MNF'.

    • 'SpectralSmoothing' - Выполнить уменьшение улыбки методом спектрального сглаживания.

    • 'MNF' - Выполнить уменьшение улыбки с использованием метода преобразования на основе максимальной доли шума (MNF).

    Размер окна усреднения по спектральной размерности, определяемый как положительное целое число, меньшее или равное количеству гиперспектральных полос в гиперспектральных данных inputData. Увеличение размера окна может дополнительно уменьшить эффект улыбки, но при использовании окна усреднения больше, чем 9 может привести к потере тонких спектральных характеристик атмосферного поглощения. Чтобы указать этот аргумент, необходимо указать 'Method' аргумент как 'SpectralSmoothing'.

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

    свернуть все

    Исправленные гиперспектральные данные, возвращенные как hypercube объект того же размера, что и входные данные hcube. Если входные данные имеют тип double, то скорректированные гиперспектральные данные имеют тип double. В противном случае тип данных скорректированных гиперспектральных данных будет single.

    Ссылки

    [1] Перкинс, Тимоти, Стивен М. Адлер-Голден, Майкл У. Мэтью, Александр Берк, Лоуренс С. Бернштейн, Жасмин Ли и Марша Э. Фокс. «Повышение скорости и точности атмосферной коррекции гиперспектральных изображений с помощью FLAASH». 51 по оптике, № 11 (13.06.2012): 111707, https://doi.org/10.1117/1.OE.51.11.111707.

    [2] Ёкоя, Наото, Норихиде Миямура и Акира Ивасаки. «Обнаружение и коррекция спектральных и пространственных неправильных регистраций для гиперспектральных данных с использованием метода фазовой корреляции». Прикладная оптика 49, № 24 (20.08.2010): 4568. https://doi.org/10.1364/AO.49.004568.

    См. также

    | | |

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