exponenta event banner

Удаление размытия изображений с помощью регуляризованного фильтра

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

Имитация гауссовского размытия и гауссовского шума

Чтение и отображение нетронутого изображения, не имеющего размытия или шума.

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.

См. также

| | |

Связанные темы