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.

Desblurring images usando un filtro regularizado

Este ejemplo muestra cómo utilizar la deconvolución regularizada para las imágenes enfoque vibración. La deconvolución regularizada se puede utilizar eficazmente cuando se aplican restricciones a la imagen recuperada (p. ej., suavidad) y se conoce información limitada sobre el ruido aditivo. La imagen borrosa y ruidosa se restaura mediante un algoritmo de restauración de mínimos cuadrados restringido que utiliza un filtro regularizado.

Paso 1: leer imagen

El ejemplo se lee en una imagen RGB y la recorta para que sea 256-by-256-by-3. La función deconvreg puede manejar matrices de cualquier dimensión.

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

Paso 2: simular un desenfoque y ruido

Simular una imagen de la vida real que podría ser borrosa (por ejemplo, debido al movimiento de la cámara o la falta de enfoque) y ruidoso (por ejemplo, debido a perturbaciones aleatorias). En el ejemplo se simula el desenfoque mediante la conformación de un filtro Gaussiano con la imagen verdadera (mediante el uso de IMFilter). El filtro gaussiano representa una función de dispersión de puntos, PSF.

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

Simulamos el ruido añadiendo un ruido Gaussiano de la varianza V a la imagen borrosa (usando imnoise).

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

Paso 3: restaura la imagen borrosa y ruidosa

Restaure la imagen borrosa y ruidosa que suministra potencia de ruido, NP, como el tercer parámetro de entrada. Para ilustrar cuán sensible es el algoritmo al valor de la potencia de ruido, NP, el ejemplo realiza tres restauraciones.

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

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

La segunda restauración, reg2, utiliza una potencia de ruido ligeramente sobreestimada, lo que conduce a una mala resolución.

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

A la tercera restauración, reg3, se le da un valor NP subestimado. Esto conduce a una abrumadora amplificación de ruido y "zumbido" de los bordes de la imagen.

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

Paso 4: reduzca la amplificación de ruido y el timbre

Reduzca la amplificación de ruido y "sonando" a lo largo del contorno de la imagen llamando a la función edgetaper antes de la deconvolución. Observe cómo la restauración de la imagen se vuelve menos sensible al parámetro de energía de ruido. Utilice el valor de potencia de ruido NP del ejemplo anterior.

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

Paso 5: Utilice el multiplicador de Lagrange

Restaurar la imagen borrosa y ruidosa, suponiendo que la solución óptima ya se encuentra y el multiplicador de Lagrange correspondiente, LAGRA, se da. En este caso, cualquier valor pasado para la potencia de ruido, NP, se ignora.

Para ilustrar cuán sensible es el algoritmo al valor de LAGRA, el ejemplo realiza tres restauraciones. La primera restauración (reg5) utiliza la salida de LAGRA de la solución anterior (salida de LAGRA de la primera solución en el paso 3).

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

La segunda restauración (reg6) utiliza 100 * LAGRA que aumenta la importancia de la restricción. De forma predeterminada, esto conduce a un exceso de suavizado de la imagen.

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

La tercera restauración utiliza LAGRA/100 que debilita la restricción (el requisito de suavidad establecido para la imagen). Amplifica el ruido y eventualmente conduce a un filtrado inverso puro para LAGRA = 0.

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

Paso 6: utilice una restricción diferente

Restaure la imagen borrosa y ruidosa utilizando una restricción diferente (REGOP) en la búsqueda de la solución óptima. En lugar de restringir la suavidad de la imagen (REGOP es Laplacian de forma predeterminada), restrinja la suavidad de la imagen solo en una cota (1-D Laplacian).

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

Consulte también

| | |

Temas relacionados