¿Cómo eliminar el ruido gaussiano de una imagen sin destruir los bordes?

15

¿Cuál es el mejor filtro para eliminar el ruido gaussiano sin destruir los bordes? Estoy usando las imágenes estándar de Lena con ruido gaussiano aditivo y quiero hacer ruido antes de aplicar la difusión anisotrópica. No quiero filtrar la mediana porque los bordes se vuelven borrosos. Intenté el filtrado adaptativo pero los resultados no fueron satisfactorios.

Aviral Kumar
fuente
44
Muestra un poco de esfuerzo, ¿qué intentaste?
0x90
1
En realidad, tengo una imagen estándar de lena corrupta con ruido gaussiano. Quiero eliminar el ruido antes de aplicar la difusión anisotrópica. No quiero ir a la mediana del filtrado porque los bordes están borrosos. Dar alguna entrada.
Aviral Kumar
1
Realmente no es una respuesta, pero encontré este enlace con una variedad de documentos sobre este mismo tema, tratando de eliminar el ruido sin deshacerme de la información de borde.
Spacey
1
¿Puede publicar algunas imágenes y resultados, por favor, para que comprendamos mejor cómo sería un resultado (no) satisfactorio? ¿Por qué no ejecutaría la difusión anisotrópica para alterar la imagen, por ejemplo?
Jonas

Respuestas:

10

Es posible que deba considerar técnicas más avanzadas. Aquí hay dos documentos recientes sobre la eliminación de ruido de preservación de bordes:

Nuestro método se basa en [análisis de regresión de salto] y consta de tres pasos principales, que se describen a continuación. Primero, los píxeles de borde se detectan en todo el espacio de diseño mediante un detector de borde. En segundo lugar, en un vecindario de un píxel dado, se estima una curva lineal por partes a partir de los píxeles de borde detectados mediante un algoritmo simple pero eficiente, para aproximar el segmento de borde subyacente en ese vecindario. Finalmente, las intensidades de imagen observadas en el mismo lado del segmento de borde estimado, como el píxel dado, se promedian mediante el procedimiento de suavizado de núcleo lineal local (cf. [35]), para estimar la intensidad de imagen real en el píxel dado.

(Los modelos de regresión de salto incorporan discontinuidades usando funciones escalonadas. El autor principal tiene un libro sobre este tema ).

Emre
fuente
2

Como punto de partida, usaría una técnica de contracción no lineal con algún tipo de transformada wavelet (aunque no son específicas de las transformaciones wavelet). Las reglas de contracción son conceptualmente simples, rápidas y fáciles de implementar, a la vez que ofrecen excelentes resultados.

La premisa es que su señal deseada se puede representar en algún dominio, de modo que la mayor parte de la energía se concentre en un pequeño número de coeficientes. Por el contrario, el ruido todavía se extiende sobre todos los coeficientes (lo que probablemente sea para AWGN). Luego puede "reducir" los coeficientes, reduciendo sus valores de acuerdo con alguna regla no lineal, de modo que el impacto en la señal sea pequeño en comparación con el impacto en el ruido.

Las transformaciones Wavelet son una buena transformación para usar porque son buenas para comprimir la energía en un pequeño número de coeficientes. Personalmente, recomiendo la transformación de wavelet compleja de árbol dual (DTCWT) por sus buenas propiedades adicionales.

2 documentos muy buenos sobre el tema son esto y esto (ambos de los mismos autores). Los documentos son un verdadero placer en términos de su legibilidad y claridad de explicación. (También hay buenas fotos de Lenna siendo desnudada :)

Ciertamente, hay documentos más recientes, pero generalmente no agregan mucha mejora cuantitativa sobre las técnicas muy simples descritas en esos documentos.

Henry Gomersall
fuente
Estos documentos no abordan específicamente la preservación de bordes; Se trata de la eliminación de imágenes genéricas.
Emre
Las wavelets bien son inherentemente buenas para preservar los bordes. La naturaleza de las imágenes naturales es que la mayor parte de la información destacada está en los bordes, por lo que discutir los bordes como un caso especial es bastante superfluo. Las imágenes naturales están definidas por los bordes.
Henry Gomersall el
Es discutible si las wavelets convencionales son especialmente buenas para preservar los bordes. Este problema es una de las motivaciones detrás de la gran cantidad de extensiones, incluidas crestas, vigas, curvas y curvas de nivel.
Emre
De hecho, las wavelets tienen sus problemas, razón por la cual sugerí usar algo diferente a las wavelets de vainilla. Aunque podría sugerirse que tengo un sesgo hacia el DTCWT, no es sin una buena razón. Ambos documentos muestran una impresionante conservación del borde. Al igual que este documento (consulte las figuras 8 y 9, en comparación con las imágenes ruidosas).
Henry Gomersall el
1

Si bien cada desafío de procesamiento de señal no existe una solución adecuada para todos, aquí hay una idea:

  1. ya que está tratando de preservar los bordes, descubra dónde están en la imagen. Use un detector de bordes para encontrar bordes dentro de su imagen.
  2. Dilatar / engordar los límites de los bordes que salen de la imagen (quizás de 2 a 5 píxeles de ancho para cada borde) llamemos a esto la "máscara"
  3. Invierte la máscara.
  4. Aplique la máscara a su imagen, es decir, solo deje pasar elementos que NO sean bordes.
  5. aplicar la técnica de desmagnetización
  6. use la máscara de borde original para obtener los valores de píxeles de la imagen donde hay bordes
  7. Colóquelos de nuevo en la imagen sin gauss

alternativamente, puede aplicar su técnica de desmagnetización a la imagen como un todo y luego simplemente reintroducir los píxeles sin desmagnetizar nuevamente en la imagen.

CyberMen
fuente