denoiseNGMeet

Denoise гиперспектральные изображения, использующие нелокальный, соответствует глобальному подходу

Описание

пример

outputData = denoiseNGMeet(inputData) уменьшает шум в гиперспектральных данных при помощи нелокального, соответствует глобальной переменной (NGMeet) подход. Это - итерационный подход, который интегрирует и пространственное нелокальное подобие и спектральное приближение низкого ранга для оценки исходных пиксельных значений. Для получения дополнительной информации см. Алгоритмы.

пример

outputData = denoiseNGMeet(inputData,Name,Value) также задает опции с помощью одного или нескольких аргументов пары "имя-значение". Используйте этот синтаксис, чтобы установить значения параметров для подхода NGMeet.

Примечание

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

Примеры

свернуть все

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

hcube = hypercube('paviaU.hdr');

Нормируйте входные данные и добавьте Гауссов шум в нормированные входные данные.

hcube = hypercube(rescale(hcube.DataCube),hcube.Wavelength);
inputData = imnoise(hcube.DataCube,'Gaussian',0,0.005);
inputData = assignData(hcube,':',':',':',inputData);

Denoise шумные гиперспектральные данные с помощью метода NGMeet.

outputData = denoiseNGMeet(inputData);

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

originalImg = colorize(hcube,'Method','rgb','ContrastStretching',true);
noisyImg = colorize(inputData,'Method','rgb','ContrastStretching',true);
denoisedImg = colorize(outputData,'Method','rgb','ContrastStretching',true);

Отобразите изображения RGB исходных, шумных, и denoised данных.

figure
montage({originalImg,noisyImg,denoisedImg})
title('Input Image | Noisy Image | Denoised Image');

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

hcube = hypercube('paviaU.hdr');

Нормируйте входные данные и добавьте Гауссов шум в нормированные входные данные.

hcube = hypercube(rescale(hcube.DataCube),hcube.Wavelength);
inputData = imnoise(hcube.DataCube,'Gaussian',0,0.005);
inputData = assignData(hcube,':',':',':',inputData);

Denoise шумные гиперспектральные данные при помощи метода NGMeet. Установите значение параметров сглаживания на 0,01 и количество итераций к 4.

outputData = denoiseNGMeet(inputData,'Sigma',0.01,'NumIterations',4);

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

originalImg = colorize(hcube,'Method','rgb','ContrastStretching',true);
noisyImg = colorize(inputData,'Method','rgb','ContrastStretching',true);
denoisedImg = colorize(outputData,'Method','rgb','ContrastStretching',true);

Отобразите изображения RGB исходных, шумных, и denoised данных.

figure
montage({originalImg,noisyImg,denoisedImg})
title('Input Image | Noisy Image | Denoised Image');

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

свернуть все

Введите гиперспектральные данные в виде 3-D числового массива, которые представляют гиперспектральный куб данных размера M-by-N-by-C или hypercube объект. Если входом является hypercube объект, функция читает куб данных, сохраненный в DataCube свойство объекта. Гиперспектральный куб данных должен быть действительным и неразреженным.

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

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

Пример: denoiseNGMeet(hcube,'Sigma',0.3)

Сглаживание параметра в виде разделенной запятой пары, состоящей из 'Sigma' и положительная скалярная величина. Значением по умолчанию является 0.1 раза шумовое отклонение (σn). При увеличении этого значения, увеличивает уровень сглаживания в denoised выход.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Количество диапазонов в приближении низкого ранга в виде разделенной запятой пары, состоящей из 'SpectralSubspace' и положительный целочисленный скаляр в области значений (0, C]. C является количеством полос во входных данных. Количество endmembers в гиперспектральных данных может быть хорошей оценкой для количества диапазонов, чтобы использовать для приближения низкого ранга. Можно найти количество endmembers во входе гиперспектральными данными при помощи countEndmembersHFC функция.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Количество итераций в виде разделенной запятой пары, состоящей из 'NumIterations' и положительный целочисленный скаляр. Увеличьте это значение для лучших результатов шумоподавления.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

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

свернуть все

Denoised гиперспектральные данные, возвращенные как 3-D числовой массив или hypercube объект. Если вход является 3-D числовым массивом, выход является 3-D числовым массивом того же размера и типа данных как вход.

Алгоритмы

Метод NGMeet оценивает denoised куб данных при помощи этих шагов. Для каждой итерации, i

  1. Вычислите спектральное приближение низкого ранга шумных входных данных (Yi) при помощи сингулярного разложения. Приближение приводит к уменьшаемому кубу данных (Mi) и связанное ортогональное основание Ai.

  2. Выполните пространственное шумоподавление уменьшаемого куба данных Mi при помощи нелокальной фильтрации подобия. Можно управлять степенью сглаживания путем определения параметра сглаживания 'Sigma'.

  3. Выполните обратную проекцию. Сопоставьте уменьшаемый куб данных denoised Mi с исходным пробелом при помощи ортогонального основания Ai. Результатом является выход denoised (Xi), полученный в итерации i.

  4. Выполните итеративную регуляризацию. Обновите шумные входные данные, Yi+1 = λ Xi + (1-λ) Yi.

  5. Повторите шаги 1 - 4 для конкретного количества итераций. Окончательное значение Xi является denoised гиперспектральными данными.

Ссылки

[1] Он, Вэй, Куэнминг Яо, Чао Ли, Naoto Yokoya и Цибинь Чжао. “Нелокальный Соответствует Глобальной переменной: Интегрированная Парадигма для Гиперспектрального Шумоподавления”. На 2019 Конференциях IEEE/CVF по Компьютерному зрению и Распознаванию образов (CVPR), 6861–70. Лонг-Бич, CA, США: IEEE, 2019. https://doi.org/10.1109/CVPR.2019.00703.

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

|

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