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.

wiener2

Filtrado adaptativo 2D de eliminación de ruido

La sintaxis wiener2(I,[m n],[mblock nblock],noise) se ha eliminado. Utilice la sintaxis wiener2(I,[m n],noise) en su lugar.

Descripción

J = wiener2(I,[m n],noise) filtra la imagen en escala de grises I utilizando un filtro de Wiener adaptativo de paso bajo a nivel de píxel. [m n] especifica el tamaño (m por n) del entorno utilizado para estimar la media y la desviación estándar de la imagen local. Se supone que la potencia del ruido aditivo (ruido blanco gaussiano) es noise.

La imagen de entrada está degradada por el ruido aditivo de potencia constante. wiener2 utiliza un método de Wiener adaptativo por píxeles basado en estadísticas estimadas de un entorno local de cada píxel.

ejemplo

[J,noise_out] = wiener2(I,[m n]) devuelve las estimaciones de la potencia del ruido aditivo wiener2 calculada antes de realizar el filtrado.

Ejemplos

contraer todo

Este ejemplo muestra cómo usar la función wiener2 para aplicar un filtro de Wiener (un tipo de filtro lineal) a una imagen de forma adaptativa. El filtro de Wiener se adapta a la varianza local de la imagen. Cuando la varianza es grande, wiener2 realiza poco suavizado. Cuando la varianza es pequeña, wiener2 realiza un mayor suavizado.

Este enfoque suele producir mejores resultados que el filtrado lineal. El filtro adaptativo es más selectivo que un filtro lineal comparable, al conservar los bordes y otras partes de alta frecuencia de una imagen. Además, no hay tareas de diseño; la función wiener2 se encarga de todos los cálculos preliminares e implementa el filtro para una imagen de entrada. wiener2, sin embargo, requiere más tiempo de cálculo que el filtrado lineal.

wiener2 funciona mejor cuando el ruido es un ruido aditivo de potencia constante ("blanco"), como el ruido gaussiano. En el ejemplo siguiente se aplica wiener2 a una imagen de Saturno con ruido gaussiano añadido.

Lea la imagen en el espacio de trabajo.

RGB = imread('saturn.png');

Convierta la imagen de color verdadero a escala de grises.

I = im2gray(RGB);

Añada ruido blanco gaussiano a la imagen.

J = imnoise(I,'gaussian',0,0.025);

Muestre la imagen con ruido. Dado que la imagen es bastante grande, muestre solo una parte de la misma.

imshow(J(600:1000,1:600));
title('Portion of the Image with Added Gaussian Noise');

Figure contains an axes object. The axes object with title Portion of the Image with Added Gaussian Noise contains an object of type image.

Elimine el ruido con la función wiener2.

K = wiener2(J,[5 5]);

Muestre la imagen procesada. Dado que la imagen es bastante grande, muestre solo una parte de la misma.

figure
imshow(K(600:1000,1:600));
title('Portion of the Image with Noise Removed by Wiener Filter');

Figure contains an axes object. The axes object with title Portion of the Image with Noise Removed by Wiener Filter contains an object of type image.

Argumentos de entrada

contraer todo

Imagen de entrada, especificada como arreglo numérico 2D.

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

Tamaño del entorno, especificado como vector de 2 elementos con forma [m n], donde m es el número de filas y n es el número de columnas.

Tipos de datos: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical

Ruido aditivo, especificado como arreglo numérico. Si no especifica el ruido, wiener2 utiliza la media de la varianza local, mean2(localVar).

Tipos de datos: single | double

Argumentos de salida

contraer todo

Imagen filtrada, devuelta como arreglo numérico del mismo tamaño y tipo de datos que la imagen de entrada, I.

Estimación de la potencia del ruido aditivo, devuelta como arreglo numérico.

Algoritmos

wiener2 estima la media local y la varianza alrededor de cada píxel.

μ=1NMn1,n2ηa(n1,n2)

y

σ2=1NMn1,n2ηa2(n1,n2)μ2,

donde η es el entorno local de N por M de cada píxel de la imagen A. wiener2 a continuación crea un filtro de Wiener por píxeles utilizando estas estimaciones,

b(n1,n2)=μ+σ2ν2σ2(a(n1,n2)μ),

donde ν2 es la varianza del ruido. Si no se proporciona la varianza del ruido, wiener2 utiliza la media de todas las varianzas locales estimadas.

Referencias

[1] Lim, Jae S. Two-Dimensional Signal and Image Processing, Englewood Cliffs, NJ, Prentice Hall, 1990, p. 548, equations 9.44, 9.45, and 9.46.

Capacidades ampliadas

Historial de versiones

Introducido antes de R2006a