reduceSmile

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

    Описание

    пример

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

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

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

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

    Примечание

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

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

    Примечание

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

    Примеры

    свернуть все

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

    hCube =  hypercube('EO1H0440342002212110PY_cropped.dat');

    Как правило, Кислородные молекулы имеют сильные функции поглощения в длине волны на 762 нм, и вызывает спектральную улыбку. В датчике 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 object. The axes object 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 object. The axes object 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 имя аргумента и 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] Yokoya, Naoto, Норихайд Миямура и Акира Ивасаки. “Обнаружение и Коррекция Спектральных и Пространственных Неверных регистраций для Гиперспектральных Данных Используя Метод Корреляции Фазы”. Прикладная Оптика 49, № 24 (20 августа 2010): 4568. https://doi.org/10.1364/AO.49.004568.

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

    | | |

    Введенный в R2020b