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

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

    Примечание

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

    Примеры

    свернуть все

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

    hCube =  hypercube('EO1H0440342002212110PY_cropped.dat');

    Обычно молекулы кислорода имеют сильные функции поглощения на длине волны 762 нм и вызывают спектральную улыбку. В датчике EO-1 Hyperion длина волны 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 объект. The 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 июня 2012 г.): 111707, https://doi.org/10.1117/1.OE.51.11.111707.

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

    См. также

    | | |

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