Изображения 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');

Figure contains an axes. The axes with title Original Image contains 2 objects of type image, text.

Симулируйте размытое изображение, которое может быть результатом неориентированного объектива. Во-первых, создайте функцию расширения точек, 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')

Figure contains an axes. The axes with title Blurred and Noisy Image contains an object of type 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')

Figure contains an axes. The axes with title Restored with True NP contains an object of type image.

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

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

Figure contains an axes. The axes with title Restored with Larger NP contains an object of type image.

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

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

Figure contains an axes. The axes with title Restored with Smaller NP contains an object of type image.

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

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

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

Figure contains an axes. The axes with title Restored with Smaller NP and Edge Tapering contains an object of type image.

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

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

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

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

Figure contains an axes. The axes with title Restored with LAGRA contains an object of type image.

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

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

Figure contains an axes. The axes with title Restored with Large LAGRA contains an object of type image.

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

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

Figure contains an axes. The axes with title Restored with Small LAGRA contains an object of type image.

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

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

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

Figure contains an axes. The axes with title Constrained by 1-D Laplacian contains an object of type image.

См. также

| | |

Похожие темы