exponenta event banner

denoiseNGMeet

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

Описание

пример

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

пример

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

Примечание

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

Примеры

свернуть все

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

hcube = hypercube('paviaU.hdr');

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

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

Денуазировать шумные гиперспектральные данные методом NGmeet.

outputData = denoiseNGMeet(inputData);

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

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

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

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);

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

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

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

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

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

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 раз превышает дисперсию шума. Увеличение этого значения увеличивает уровень сглаживания на деноизируемом выходе.

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

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

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

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

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

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

свернуть все

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

Алгоритмы

Метод NGMeet оценивает denoised data cube, используя эти шаги. Для каждой итерации i

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

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

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

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

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

Ссылки

[1] Хэ, Вэй, Цюаньмин Яо, Чао Ли, Наото Ёкоя и Цибинь Чжао. «Non-Local Meets Global: интегрированная парадигма гиперспектрального деноизирования». В 2019 году Конференция IEEE/CVF по компьютерному зрению и распознаванию образов (CVPR), 6861-70. Лонг-Бич, Калифорния, США: IEEE, 2019. https://doi.org/10.1109/CVPR.2019.00703.

См. также

|

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