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 resultan en valores de píxel que no reflejan las verdaderas intensidades de la escena real. Hay varias maneras en que el ruido se puede introducir en una imagen, dependiendo de cómo se crea la imagen. Por ejemplo:

  • Si la imagen se escanea a partir de una fotografía realizada en una película, el grano de la 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 un 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 enumerados anteriormente, la caja de herramientas proporciona la función, que puede utilizar para varios tipos de ruido a una imagen.imnoiseadd Los ejemplos de esta sección utilizan esta función.

Eliminar ruido por filtrado lineal

Puede utilizar el filtrado lineal para eliminar ciertos tipos de ruido. Ciertos filtros, como el promedio o los filtros Gaussianos, son apropiados para este propósito. Por ejemplo, un filtro de promedio 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 ruido mediante un filtro de promedio y un filtro mediano

Este ejemplo muestra cómo eliminar el ruido de sal y pimienta de una imagen utilizando un filtro de promedio 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 de la vecindad alrededor del píxel de entrada correspondiente. Sin embargo, con el filtrado de mediana, el valor de un píxel de salida viene determinado por la mediana de los píxeles de la vecindad, en lugar de la media. La mediana es mucho menos sensible que la media a los valores extremos (denominados Outliers). Por lo tanto, el filtrado de mediana es mejor capaz de eliminar estos valores atípicos sin reducir la nitidez de la imagen.

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

Leer la imagen en el espacio de trabajo y mostrarla.

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

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

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

Filtre la imagen ruidosa, con un filtro de promedio y visualice los resultados.J El ejemplo utiliza una vecindad 3-por-3.

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

Ahora usa un filtro mediano para filtrar la imagen ruidosa,.J El ejemplo también utiliza una vecindad 3-por-3. Visualice las dos imágenes filtradas una al lado de la otra 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 ruido por filtrado adaptativo

Este ejemplo muestra cómo utilizar la función para aplicar un filtro Wiener (un tipo de filtro lineal) a una imagen adaptivamente.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 más 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 ruido aditivo de potencia constante ("blanco"), como el ruido Gaussiano.wiener2 El siguiente ejemplo 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 color verdadero a escala de grises.

I = rgb2gray(RGB);

Añada ruido Gaussiano a la imagen

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

Visualice la imagen ruidosa. Debido a que la imagen es bastante grande, mostrar sólo una porción de la imagen.

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

Quite el ruido utilizando la función.wiener2

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

Visualice la imagen procesada. Debido a que la imagen es bastante grande, mostrar sólo una porción 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