stringtranslate.com

Filtro mediano

Ejemplo de 3 filtros medianos de diferentes radios aplicados a la misma fotografía ruidosa.

El filtro mediano es una técnica de filtrado digital no lineal que se utiliza a menudo para eliminar el ruido de una imagen o señal. Esta reducción de ruido es un paso típico de preprocesamiento para mejorar los resultados del procesamiento posterior (por ejemplo, la detección de bordes en una imagen). El filtrado mediano se usa muy ampliamente en el procesamiento de imágenes digitales porque, bajo ciertas condiciones, preserva los bordes mientras elimina el ruido (pero consulte la discusión a continuación), y también tiene aplicaciones en el procesamiento de señales .

Descripción del algoritmo

La idea principal del filtro de mediana es recorrer la señal entrada por entrada, reemplazando cada entrada con la mediana de las entradas vecinas. El patrón de vecinos se llama "ventana", que se desliza, entrada por entrada, sobre toda la señal. Para señales unidimensionales, la ventana más obvia son solo las primeras entradas anteriores y siguientes, mientras que para datos bidimensionales (o de dimensiones superiores), la ventana debe incluir todas las entradas dentro de un radio o región elipsoidal determinado (es decir, la ventana más obvia). El filtro mediano no es un filtro separable ). [ cita necesaria ]

Ejemplo unidimensional resuelto

Para demostrarlo, utilizando un tamaño de ventana de tres con una entrada inmediatamente antes y después de cada entrada, y límites rellenos con ceros, se aplicará un filtro mediano a la siguiente señal unidimensional simple:

x = (2, 3, 80, 6, 2, 3).

Entonces, la señal de salida filtrada mediana y será:

y 0 = med(0, 2, 3) = 2, (el valor límite se considera 0)
y 1 = med(2, 3, 80) = 3, (ya 2, 3 y 80 están en orden creciente, por lo que no es necesario ordenarlos)
y 2 = med(3, 80, 6) = med(3, 6, 80) = 6, (3, 80 y 6 se reordenan para encontrar la mediana)
y 3 = med(80, 6, 2) = med(2, 6, 80) = 6,
y 4 = med(6, 2, 3) = med(2, 3, 6) = 3,
y 5 = med(2, 3, 0) = med(0, 2, 3) = 2,

es decir, y = (2, 3, 6, 6, 3, 2).

Problemas de límites

Al implementar un filtro mediano, los límites de la señal deben manejarse con especial cuidado, ya que no hay suficientes entradas para llenar una ventana completa. Hay varios esquemas que tienen diferentes propiedades que podrían preferirse en circunstancias particulares:

Pseudocódigo de filtro mediano bidimensional

El código para un algoritmo de filtro de mediana bidimensional simple podría verse así:

1. asignar salidaPixelValue [ancho de imagen] [alto de imagen]2. asignar ventana [ancho de ventana × alto de ventana]3. edgex := (ancho de ventana / 2) redondeado hacia abajo4. edgey := (alto de la ventana / 2) redondeado hacia abajo
 para  x desde edgex hasta el ancho de la imagen - edgex hacer  para  y desde edgey hasta la altura de la imagen - edgey hacer yo = 0 para  fx desde 0 hasta el ancho de la ventana, haga  para  fy desde 0 hasta la altura de la ventana, haga ventana[i] := inputPixelValue[x + fx - edgex][y + fy - edgey] yo := yo + 1 ordenar entradas en la ventana [] salidaPixelValue[x][y] := ventana[ancho de ventana * alto de ventana / 2]

Este algoritmo:

Uso de un filtro mediano para mejorar una imagen gravemente dañada por píxeles defectuosos

Problemas de implementación de algoritmos

Normalmente, la mayor parte del tiempo y esfuerzo computacional se dedica a calcular la mediana de cada ventana. Debido a que el filtro debe procesar cada entrada de la señal, para señales grandes como imágenes, la eficiencia de este cálculo mediano es un factor crítico para determinar qué tan rápido puede ejecutarse el algoritmo. La implementación ingenua descrita anteriormente ordena cada entrada en la ventana para encontrar la mediana; sin embargo, dado que sólo se requiere el valor medio de una lista de números, los algoritmos de selección pueden ser mucho más eficientes. Además, algunos tipos de señales (muy a menudo el caso de las imágenes) utilizan representaciones de números enteros: en estos casos, las medianas de los histogramas pueden ser mucho más eficientes porque es sencillo actualizar el histograma de una ventana a otra y encontrar la mediana de un histograma. no es particularmente oneroso. [1]

Propiedades de conservación de bordes

El filtrado mediano es un tipo de técnica de suavizado, al igual que el filtrado gaussiano lineal . Todas las técnicas de suavizado son eficaces para eliminar el ruido en parches o regiones suaves de una señal, pero afectan negativamente a los bordes. Sin embargo, a menudo, al mismo tiempo que se reduce el ruido de una señal, es importante preservar los bordes. Los bordes son de importancia crítica para la apariencia visual de las imágenes, por ejemplo. Para niveles pequeños a moderados de ruido gaussiano, el filtro mediano es demostrablemente mejor que el desenfoque gaussiano para eliminar el ruido y al mismo tiempo preservar los bordes para un tamaño de ventana fijo determinado. [2] Sin embargo, su rendimiento no es mucho mejor que el desenfoque gaussiano para altos niveles de ruido, mientras que, para ruido moteado y ruido de sal y pimienta (ruido impulsivo), es particularmente efectivo. [3] Debido a esto, el filtrado mediano se usa muy ampliamente en el procesamiento de imágenes digitales .

Ver también

Referencias

  1. ^ Huang, Thomas S.; Yang, George J.; Tang, Gregory Y. (febrero de 1979). "Un algoritmo rápido de filtrado de medianas bidimensionales" (PDF) . Transacciones IEEE sobre acústica, voz y procesamiento de señales . 27 (1): 13-18. doi :10.1109/TASSP.1979.1163188.
  2. ^ Arias-Castro, Ery; Donoho, David L. (junio de 2009). "¿El filtrado mediano realmente preserva los bordes mejor que el filtrado lineal?". Anales de Estadística . 37 (3): 1172–2009. arXiv : matemáticas/0612422 . Código Bib : 2006 matemáticas..... 12422A. doi : 10.1214/08-AOS604 . SEÑOR  2509071. Zbl  1160.62086.
  3. ^ Arce, Gonzalo R. (2005). Procesamiento de señales no lineal: un enfoque estadístico . Nueva Jersey, Estados Unidos: Wiley. ISBN 0-471-67624-1.

enlaces externos