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.

Eliminación de ruido

Las imágenes digitales son propensas a varios tipos de ruido. El ruido es el resultado de errores en el proceso de adquisición de imágenes que dan como resultado valores de píxeles que no reflejan las intensidades reales de la escena real. Hay varias maneras en que el ruido se puede introducir en una imagen, dependiendo de cómo se cree la imagen. Por ejemplo:

  • Si la imagen se escanea a partir de una fotografía hecha en la película, el grano de película es una fuente de ruido. El ruido también puede ser el resultado de daños en la película, o ser introducido por el propio escáner.

  • Si la imagen se adquiere directamente en formato digital, el mecanismo para recopilar los datos (como un detector CCD) puede introducir ruido.

  • La transmisión electrónica de datos de imagen puede introducir ruido.

Para simular los efectos de algunos de los problemas mencionados anteriormente, la caja de herramientas proporciona la función, que se puede utilizar para varios tipos de ruido a una imagen.imnoiseAñadir Los ejemplos de esta sección utilizan esta función.

Eliminar ruido por filtrado lineal

Puede utilizar el filtrado lineal para eliminar determinados tipos de ruido. Ciertos filtros, como el promedio o los filtros gaussianos, son adecuados para este propósito. Por ejemplo, un filtro de promediación es útil para eliminar el ruido de grano de una fotografía. Dado que cada píxel se establece en el promedio de los píxeles de su vecindad, se reducen las variaciones locales causadas por el grano.

Consulte para obtener más información sobre el filtrado lineal mediante .¿Qué es el filtrado de imágenes en el dominio espacial?imfilter

Eliminar el ruido con un filtro de promediación y un filtro de mediana

En este ejemplo se muestra cómo eliminar el ruido de sal y pimienta de una imagen mediante un filtro de promediación y un filtro mediano para permitir la comparación de los resultados. Estos dos tipos de filtrado establecen el valor del píxel de salida en el promedio de los valores de píxel en la vecindad alrededor del píxel de entrada correspondiente. Sin embargo, con el filtrado medio, el valor de un píxel de salida viene determinado por la mediana de los píxeles de vecindad, en lugar de la media. La mediana es mucho menos sensible que la media a los valores extremos (llamados valores atípicos). Por lo tanto, el filtrado medio es más capaz de eliminar estos valores atípicos sin reducir la nitidez de la imagen.

Nota: El filtrado de medianas es un caso específico de filtrado de estadísticas de pedidos, también conocido como filtrado de clasificación. Para obtener información sobre el filtrado de estadísticas de pedidos, consulte la página de referencia de la función.ordfilt2

Lea la imagen en el espacio de trabajo y muéstrala.

I = imread('eight.tif'); figure imshow(I)

Para este ejemplo, agregue sal y ruido de pimienta a la imagen. Este tipo de ruido consiste en píxeles aleatorios que se establecen en blanco o negro (los extremos del rango de datos).

J = imnoise(I,'salt & pepper',0.02); figure imshow(J)

Filtre la imagen ruidosa, , con un filtro de promediación y muestre los resultados.J El ejemplo utiliza una vecindad de 3 por 3.

Kaverage = filter2(fspecial('average',3),J)/255; figure imshow(Kaverage)

Ahora use un filtro mediano para filtrar la imagen ruidoso, .J El ejemplo también utiliza una vecindad de 3 por 3. Muestre las dos imágenes filtradas en paralelo para la comparación. Tenga en cuenta que hace un mejor trabajo de eliminación de ruido, con menos desenfoque de los bordes de las monedas.medfilt2

Kmedian = medfilt2(J); imshowpair(Kaverage,Kmedian,'montage')

Eliminar el ruido mediante el filtrado adaptativo

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

Este enfoque a menudo produce mejores resultados que el filtrado lineal. El filtro adaptativo es más selectivo que un filtro lineal comparable, conservando los bordes y otras partes de alta frecuencia de una imagen. Además, no hay tareas de diseño; la función controla todos los cálculos preliminares e implementa el filtro para una imagen de entrada. Sin embargo, requiere más tiempo de cálculo que el filtrado lineal.wiener2wiener2

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

Lea la imagen en el espacio de trabajo.

RGB = imread('saturn.png');

Convierta la imagen de truecolor a escala de grises.

I = rgb2gray(RGB);

Añadir ruido gaussiano a la imagen

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

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

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

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 imagen.

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

Consulte también

| | | | |

Temas relacionados