Main Content

Esta página aún no se ha traducido para esta versión. Puede ver la versión más reciente de esta página en inglés.

Deblur imágenes con un filtro regularizado

En este ejemplo se muestra cómo utilizar la desconvolución regularizada para desenfocar imágenes. La desconvolución regular se puede utilizar eficazmente cuando se conoce información limitada sobre el ruido aditivo y se aplican restricciones (como la suavidad) en la imagen recuperada. La imagen borrosa y ruidoso se restaura mediante un algoritmo de restauración menos cuadrado restringido que utiliza un filtro regularizado.

Simular desenfoque gaussiano y ruido gaussiano

Leer y mostrar una imagen prístina que no tiene desenfoque ni ruido.

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');

Simular una imagen borrosa que podría resultar de una lente desenfocada. En primer lugar, cree una función de dispersión de puntos, , utilizando la función y especificando un filtro gaussiano de tamaño 11 por 11 y la desviación estándar 5.PSFfspecial A continuación, convoque la función de extensión de puntocon la imagen utilizando .imfilter

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

Agregue ruido gaussiano de media cero a la imagen borrosa utilizando la función.imnoise

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

Muestre la imagen borrosa y ruidoso.

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

Restaurar imagen con la potencia de ruido estimada

Restaure la imagen borrosa utilizando la función, suministrando la potencia de ruido (NP) como tercer parámetro de entrada.deconvreg Para ilustrar cuán sensible es el algoritmo al valor de la potencia de ruido, este ejemplo realiza tres restauraciones.

Para la primera restauración, utilice el NP verdadero. Tenga en cuenta que el ejemplo genera dos parámetros aquí. El primer valor devuelto, , es la imagen restaurada.reg1 El segundo valor devuelto, , es un multiplicador Lagrange escalar en el que ha convergido la desconvolución regularizada.lagra Este valor se utiliza más adelante en el ejemplo.

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

Para la segunda restauración, utilice una potencia de ruido ligeramente sobreestimada. La restauración tiene una resolución deficiente.

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

Para la tercera restauración, utilice una potencia de ruido ligeramente subestimada. La restauración tiene una amplificación de ruido abrumadora y el timbre de los bordes de la imagen.

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

Reducir la amplificación de ruido y el timbre

Puede reducir la amplificación de ruido y el timbre a lo largo del límite de la imagen llamando a la función antes de la desconvolución.edgetaper La restauración de la imagen se vuelve menos sensible al parámetro de potencia de ruido.

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

Utilice el multiplicador Lagrange

Restaure la imagen borrosa y ruidoso, suponiendo que ya se encuentra la solución óptima y se conoce el multiplicador Lagrange correspondiente. En este caso, se omite cualquier valor pasado para la potencia de ruido, NP.

Para ilustrar lo sensible que es el algoritmo para el multiplicador Lagrange, este ejemplo realiza tres restauraciones. La primera restauración utiliza la salida de la restauración realizada anteriormente.lagrareg1

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

La segunda restauración utiliza 100* lo que aumenta la importancia de la restricción.lagra De forma predeterminada, esto conduce a un suavizado excesivo de la imagen.

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

La tercera restauración utiliza /100 que debilita la restricción (el requisito de suavizado establecido para la imagen).lagra Amplifica el ruido. Para el caso extremo cuando el multiplicador Lagrange es igual a 0, la reconstrucción es un filtrado inverso puro.

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

Usar una restricción de suavizado diferente

Restaure la imagen borrosa y noása utilizando una restricción diferente para el operador de regularización. En lugar de utilizar la restricción Laplacian predeterminada en la suavidad de la imagen, restrinja la suavidad de la imagen solo en una dimensión (1-D Laplacian).

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

Consulte también

| | |

Temas relacionados