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

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

Симулируйте гауссову размытость и гауссов шум

Считайте и отобразите нетронутое изображение, которое не имеет размытости или шума.

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

Симулируйте размытое изображение, которое может следовать из расфокусированной линзы. Во-первых, создайте функцию рассеяния точки, PSF, при помощи fspecial функция и определение Гауссова фильтра размера 11 11 и стандартного отклонения 5. Затем примените операцию свертки к функции рассеяния точки с изображением при помощи imfilter.

PSF = fspecial('gaussian',11,5);
blurred = imfilter(I,PSF,'conv');

Добавьте нулевой средний Гауссов шум в размытое изображение при помощи imnoise функция.

noise_mean = 0;
noise_var = 0.02;
blurred_noisy = imnoise(blurred,'gaussian',noise_mean,noise_var);

Отобразите размытое шумное изображение.

imshow(blurred_noisy)
title('Blurred and Noisy Image')

Восстановите изображение Используя предполагаемую шумовую степень

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

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

NP = noise_var*numel(I);
[reg1,lagra] = deconvreg(blurred_noisy,PSF,NP);
imshow(reg1)
title('Restored with True NP')

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

reg2 = deconvreg(blurred_noisy,PSF,NP*1.3);
imshow(reg2)
title('Restored with Larger NP')

Для третьего восстановления используйте немного недооцениваемую шумовую степень. Восстановление имеет подавляющее шумовое усиление и звонящий от цветов границы изображения.

reg3 = deconvreg(blurred_noisy,PSF,NP/1.3);
imshow(reg3)
title('Restored with Smaller NP')

Уменьшайте шумовое усиление и вызов

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

Edged = edgetaper(blurred_noisy,PSF);
reg4 = deconvreg(Edged,PSF,NP/1.3);
imshow(reg4)
title('Restored with Smaller NP and Edge Tapering')

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

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

Чтобы проиллюстрировать, насколько чувствительный алгоритм ко множителю Лагранжа, этот пример выполняет три восстановления. Первое восстановление использует lagra выведите от reg1 восстановление выполняется ранее.

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

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

reg6 = deconvreg(Edged,PSF,[],lagra*100);
imshow(reg6)
title('Restored with Large LAGRA')

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

reg7 = deconvreg(Edged,PSF,[],lagra/100);
imshow(reg7)
title('Restored with Small LAGRA')

Используйте различное ограничение гладкости

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

regop = [-1 2 -1];
reg8 = deconvreg(blurred_noisy,PSF,[],lagra,regop);
imshow(reg8)
title('Constrained by 1-D Laplacian')

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

| | |

Похожие темы