Main Content

La traducción de esta página aún no se ha actualizado a la versión más reciente. Haga clic aquí para ver la última versión en inglés.

deconvwnr

Enfocar una imagen borrosa usando el filtro de Wiener

Descripción

ejemplo

J = deconvwnr(I,psf,nsr) deconvoluciona la imagen I usando el algoritmo del filtro de Wiener, devolviendo enfocada la imagen borrosa J. psf es la función de dispersión puntual (PSF) con la que I fue convolucionada. nsr es la relación de potencia señal-ruido del ruido aditivo. El algoritmo es óptimo en un sentido de error cuadrático medio mínimo entre las imágenes estimadas y reales.

J = deconvwnr(I,psf,ncorr,icorr) deconvoluciona la imagen I, donde ncorr es la función de autocorrelación del ruido y icorr es la función de autocorrelación de la imagen original.

J = deconvwnr(I,psf) deconvoluciona la imagen I usando el algoritmo del filtro de Wiener sin estimación del ruido. Si no hay ruido, un filtro de Wiener equivale a un filtro inverso ideal.

Ejemplos

contraer todo

Lea una imagen en el espacio de trabajo y muéstrela.

I = im2double(imread('cameraman.tif'));
imshow(I);
title('Original Image (courtesy of MIT)');

Figure contains an axes object. The axes object with title Original Image (courtesy of MIT) contains an object of type image.

Simule un desenfoque de movimiento.

LEN = 21;
THETA = 11;
PSF = fspecial('motion', LEN, THETA);
blurred = imfilter(I, PSF, 'conv', 'circular');
figure, imshow(blurred)

Figure contains an axes object. The axes object contains an object of type image.

Simule ruido aditivo.

noise_mean = 0;
noise_var = 0.0001;
blurred_noisy = imnoise(blurred, 'gaussian', ...
                        noise_mean, noise_var);
figure, imshow(blurred_noisy)
title('Simulate Blur and Noise')

Figure contains an axes object. The axes object with title Simulate Blur and Noise contains an object of type image.

Pruebe el restablecimiento suponiendo que no hay ruido.

estimated_nsr = 0;
wnr2 = deconvwnr(blurred_noisy, PSF, estimated_nsr);
figure, imshow(wnr2)
title('Restoration of Blurred, Noisy Image Using NSR = 0')

Figure contains an axes object. The axes object with title Restoration of Blurred, Noisy Image Using NSR = 0 contains an object of type image.

Pruebe el restablecimiento con una mejor estimación de la relación de potencia señal-ruido.

estimated_nsr = noise_var / var(I(:));
wnr3 = deconvwnr(blurred_noisy, PSF, estimated_nsr);
figure, imshow(wnr3)
title('Restoration of Blurred, Noisy Image Using Estimated NSR');

Figure contains an axes object. The axes object with title Restoration of Blurred, Noisy Image Using Estimated NSR contains an object of type image.

Argumentos de entrada

contraer todo

Imagen borrosa, especificada como arreglo numérico de cualquier dimensión.

Tipos de datos: single | double | int16 | uint8 | uint16

Función de dispersión puntual, especificada como arreglo numérico.

Tipos de datos: double

Relación señal-ruido, especificada como escalar no negativo o arreglo numérico del mismo tamaño que la imagen I. Si nsr es un arreglo, entonces representa el dominio espectral. Especificar 0 para nsr equivale a crear un filtro inverso ideal.

Tipos de datos: double

Función de autocorrelación del ruido, especificada como arreglo numérico de cualquier tamaño o dimensión, sin exceder la imagen original.

  • Si la dimensionalidad de ncorr coincide con la dimensionalidad de la imagen I, entonces los valores corresponden a la autocorrelación dentro de cada dimensión.

  • Si ncorr es un vector y psf también es un vector, entonces los valores de ncorr representan la función de autocorrelación de la primera dimensión.

  • Si ncorr es un vector y psf es un arreglo, entonces la función de autocorrelación 1D se extrapola por simetría a todas las dimensiones no únicas de psf.

  • Si ncorr es un escalar, entonces el valor representa la potencia del ruido de la imagen.

Tipos de datos: double

Función de autocorrelación de la imagen, especificada como arreglo numérico de cualquier tamaño o dimensión, sin exceder la imagen original.

  • Si la dimensionalidad de icorr coincide con la dimensionalidad de la imagen I, los valores corresponden a la autocorrelación dentro de cada dimensión.

  • Si icorr es un vector y psf también es un vector, entonces los valores de icorr representan la función de autocorrelación de la primera dimensión.

  • Si icorr es un vector y psf es un arreglo, entonces la función de autocorrelación 1D se extrapola por simetría a todas las dimensiones no únicas de psf.

  • Si icorr es un escalar, entonces el valor representa la potencia del ruido de la imagen.

Tipos de datos: double

Argumentos de salida

contraer todo

Imagen enfocada, devuelta como arreglo numérico. J tiene el mismo tipo de datos que I.

Sugerencias

  • La imagen de salida J podría mostrar artefactos de anillo introducidos por la transformada discreta de Fourier utilizada en el algoritmo. Para reducir la intensidad de los artefactos , utilice I = edgetaper(I,psf) antes de llamar a deconvwnr.

Referencias

[1] Gonzalez, R. C., and R. E. Woods. Digital Image Processing. Addison-Wesley Publishing Company, Inc., 1992.

Historial de versiones

Introducido antes de R2006a