Изображения Deblurring Используя упорядоченный фильтр

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

Шаг 1: Readimage

Пример читает в изображении RGB и обрезках его, чтобы быть 256 256 3. Функция deconvreg может обработать массивы любой размерности.

I = imread('tissue.png');
I = I(125+(1:256),1:256,:);
f1 = figure;
imshow(I);
figure(f1);
title('Original Image');
text(size(I,2),size(I,1)+15, ...
    'Image courtesy of Alan Partin, Johns Hopkins University', ...
    'FontSize',7,'HorizontalAlignment','right');

Шаг 2: моделируйте размытость и шум

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

PSF = fspecial('gaussian',11,5);
Blurred = imfilter(I,PSF,'conv');
f2 = figure;
imshow(Blurred);
figure(f2);
title('Blurred');

Мы моделируем шум путем добавления Гауссова шума отклонения V к размытому изображению (использующий imnoise).

V = .02;
BlurredNoisy = imnoise(Blurred,'gaussian',0,V);
f3 = figure;
imshow(BlurredNoisy);
figure(f3);
title('Blurred & Noisy');

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

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

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

NP = V*numel(I); % noise power
[reg1, LAGRA] = deconvreg(BlurredNoisy,PSF,NP);
f4 = figure;
imshow(reg1);
figure(f4);
title('Restored with NP');

Второе восстановление, reg2, использует немного завышенную шумовую степень, которая приводит к низкому разрешению.

reg2 = deconvreg(BlurredNoisy,PSF,NP*1.3);
f5 = figure;
imshow(reg2);
figure(f5);
title('Restored with larger NP');

Третьему восстановлению, reg3, дают недооцениваемое значение NP. Это приводит к подавляющему шумовому усилению и "звонящий" от цветов границы изображения.

reg3 = deconvreg(BlurredNoisy,PSF,NP/1.3);
f6 = figure;
imshow(reg3);
figure(f6);
title('Restored with smaller NP');

Шаг 4: уменьшайте шумовое усиление и вызов

Уменьшайте шумовое усиление и "звонящий" вдоль контура изображения путем вызывания edgetaper функции до развертки. Отметьте, как восстановление изображений становится менее чувствительным к шумовому параметру степени. Используйте шумовой NP значения степени от предыдущего примера.

Edged = edgetaper(BlurredNoisy,PSF);
reg4 = deconvreg(Edged,PSF,NP/1.3);
f7 = figure;
imshow(reg4);
figure(f7);
title('Edgetaper effect');

Шаг 5: используйте множитель Лагранжа

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

Чтобы проиллюстрировать, насколько чувствительный алгоритм к значению LAGRA, пример выполняет три восстановления. Первое восстановление (reg5) использует LAGRA вывод из более раннего решения (LAGRA вывод из первого решения на Шаге 3).

reg5 = deconvreg(Edged,PSF,[],LAGRA);
f8 = figure;
imshow(reg5);
figure(f8);
title('Restored with LAGRA');

Второе восстановление (reg6) использует 100*LAGRA, который увеличивает значение ограничения. По умолчанию это приводит к сверхсглаживанию изображения.

reg6 = deconvreg(Edged,PSF,[],LAGRA*100);
f9 = figure;
imshow(reg6);
figure(f9);
title('Restored with large LAGRA');

Третье восстановление использует LAGRA/100, который ослабляет ограничение (набор требования гладкости для изображения). Это усиливает шум и в конечном счете приводит к чистой обратной фильтрации для LAGRA = 0.

reg7 = deconvreg(Edged,PSF,[],LAGRA/100);
f10 = figure;
imshow(reg7);
figure(f10);
title('Restored with small LAGRA');

Шаг 6: используйте различное ограничение

Восстановите размытое и шумное изображение с помощью различного ограничения (REGOP) в поиске оптимального решения. Вместо того, чтобы ограничить гладкость изображений (REGOP является Лапласианом по умолчанию), ограничьте гладкость изображений только в одной размерности (1D Лапласиан).

REGOP = [1 -2 1];
reg8 = deconvreg(BlurredNoisy,PSF,[],LAGRA,REGOP);
f11 = figure;
imshow(reg8);
figure(f11);
title('Constrained by 1D Laplacian');

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

| | |

Похожие темы