MATLAB.Exponenta
MATLAB и Simulink на русском
Технологии разработки и отладки
		сложных технических систем

Обработка сигналов и изображений\image Processing Toolbox

И.М.Журавель "Краткий курс теории обработки изображений"

В оглавление \ К следующему разделу \ К предыдущему разделу

Реконструкция изображений с использованием регуляризационного фильтра

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

Содержание.

    Шаг 1: Считывание изображения.
  • Шаг 2: Симуляция размытостей и шума.
  • Шаг 3: Восстановление размытых и зашумленных изображений.
  • Шаг 4: Ослабление шумовой составляющей.
  • Шаг 5: Использование коэффициента Лагранжа.
  • Шаг 6: Использование дифференциальной обработки.

Шаг 1: Считывание изображения.

Считаем RGB-изображение и вырежем из него часть размером 2562563. Далее к этому изображению будет применяться функция deconvreg.

I=imread('tissue.png');
I=I(125+[1:256], 1:256,:);
figure; imshow(I); title('Исходное изображение');

Шаг 2: Симуляция размытостей и шума.

Проведем симулирование реальных изображений, которые содержат размытости (например, результат движения камеры или недостаточной фокусировки) и шумовую составляющую. Размытости на изображении формируются при свертке исходного изображения с фильтром Гаусса (можно использовать функцию imfilter). При этом также используется функция протяженности точки PSF.

PSF=fspecial('gaussian', 11, 5);
Blurred=imfilter(I, PSF, 'conv');
figure; imshow(Blurred);
title('Размытое изображение');

Зашумленное изображение будем формировать, добавляя к размытому изображению гауссовский шум (при этом можно использовать функцию imnoise).

V=.02;
BlurredNoisy=imnoise(Blurred,'gaussian',0,V);
figure;imshow(BlurredNoisy);
title('Размытое и зашумленное изображение');

Шаг 3: Восстановление размытых и зашумленных изображений.

При восстановлении изображений для анализа шумовой составляющей используется еще один параметр NP. Продемонстрируем чувствительность этого метода к этому параметру при трех реализациях.

При первой реализации reg1 используем точное значение параметра NP. Отметим, что результатом работы метода является два параметра. Первый, reg1, представляет непосредственно восстановленное изображение. Второй параметр, LAGRA, представляет собой скаляр, точнее множитель Лагранжа.

NP=V*prod(size(I)); % коэффициент шума.
[reg1 LAGRA]=deconvreg(BlurredNoisy, PSF, NP);
figure, imshow(reg1),title('Восстановление с NP');

При второй реализации метода, reg2, используется значение NP, которое отличается от прежнего в сторону увеличения, что будет влиять на разрешение.

reg2=deconvreg(BlurredNoisy, PSF, NP*1.3);
figure; imshow(reg2);
title('Восстановление с большим NP');

При третьей реализации reg3 используется значение NP, которое меньше того, которое использовалось при первой реализации.

reg3=deconvreg(BlurredNoisy, PSF, NP/1.3);
figure; imshow(reg3);
title('Восстановление с небольшим значением NP');

Шаг 4: Ослабление шумовой составляющей.

В этом примере рассмотрим применение функции edgetaper для уменьшения шумовой составляющей. Эта функция будет реализована перед функцией deconvolution. Полученный результат лучше прежних реализаций.

Edged=edgetaper(BlurredNoisy, PSF);
reg4=deconvreg(Edged, PSF, NP/1.3);
figure;imshow(reg4);
title('Применение функции edgetaper');

Шаг 5: Использование коэффициента Лагранжа.

При проведении операции восстановления размытого и зашумленного изображения предполагается использование некоторого множителя Лагранжа. В этом случае параметром NP, определяющим уровень зашумленности, можно проигнорировать.

Для иллюстрации чувствительности алгоритма к значению LAGRA, проведем три реализации этого подхода. При первой реализации (reg5) используем значение LAGRA, полученное при первой реализации в Шаге 3.

reg5=deconvreg(Edged, PSF, [], LAGRA);
figure; imshow(reg5);
title('Восстановление с LAGRA');

При второй реализации (reg6) используем значение 100*LAGRA. Это должно привести к размытости изображения.

reg6=deconvreg(Edged, PSF, [], LAGRA*100);
figure; imshow(reg6);
title('Восстановление с большим значением LAGRA');

При третьей реализации используем значение LAGRA/100, что приведет к более слабой размытости изображения.

reg7=deconvreg(Edged, PSF, [], LAGRA/100);
figure; imshow(reg7);
title('Восстановление с небольшим параметром LAGRA');

Шаг 6: Использование дифференциальной обработки.

Рассмотрим пример восстановления размытого и зашумленного изображения с применением параметра дифференциальной обработки (REGOP). Для этого используем одномерный лапласиан.

REGOP=[1 -2 1];
reg8=deconvreg(BlurredNoisy, PSF, [], LAGRA, REGOP);
figure; imshow(reg8);
title('Дифференциальная обработка');

В оглавление \ К следующему разделу \ К предыдущему разделу


Поиск по сайту:

Система Orphus

Яндекс.Метрика