¿Cómo eliminar el ruido sin destruir el borde principal?

8

Estoy trabajando en un proyecto Quiero segmentar un logotipo de un automóvil y el tamaño de la imagen es 3648 * 2432. El logotipo se selecciona mediante el rectángulo rojo.

ingrese la descripción de la imagen aquí

Extraje esta área y me convierto en gris. El tamaño del área es 249 * 173. Luego, uso el ecualizador de histograma para mejorar el borde. Finalmente, uso el canny adaptativo para encontrar ventaja.

ingrese la descripción de la imagen aquí ingrese la descripción de la imagen aquí

Sin embargo, el resultado no es perfecto. Entonces, utilicé el filtro mediano para suavizar la imagen izquierda. El resultado es el siguiente.

ingrese la descripción de la imagen aquí

Quito las partes pequeñas.

ingrese la descripción de la imagen aquí

El resultado ha sido mejorado, pero tampoco es bueno. Además, he probado el filtro bilateral, el filtro medio y el filtro gaussiano, pero el resultado tampoco es bueno. Sé que después de pasar la ecualización del histograma, se puede mejorar el ruido. Pero, en algunos casos, bajo contraste, necesito adaptar este paso para mejorar mi imagen. ¿Hay alguien que pueda proporcionarme algún comentario diferente? Muchas gracias.

Kuo
fuente

Respuestas:

7

Use un filtro bilateral o difusión anisotrópica primero.

El efecto de la difusión anisotrópica es el siguiente:

ingrese la descripción de la imagen aquí. El código MATLAB se puede encontrar aquí .

Aquí está su efecto en su imagen: ingrese la descripción de la imagen aquí

Finalmente, los medios no locales también son una buena manera de deshacerse del ruido. También es posible que desee echar un vistazo a eso. Sin embargo, te advierto que es lento.

Tolga Birdal
fuente
Pruebe esto: github.com/RoyiAvital/… Mucho más avanzado que la difusión anisotrópica clásica.
Royi
1
@tbirdal: la difusión anisotrópica parece interesante, si puede proporcionar un conjunto de ejemplos de imágenes originales y procesadas junto con la generación de código matlab, eso sería apreciado.
Fat32
verifique nuevamente por favor.
Tolga Birdal
Gracias por los ejemplos y el código. He proporcionado mi propio procesamiento muy simple en el enlace: [IMG] i62.tinypic.com/2w3t6gz.jpg[/IMG] . Su efecto en el Lena es mucho mejor, pero no es un detector de bordes. Solo un afilador de imagen con reducción de ruido.
Fat32
Leeré el artículo sobre difusión anisotrópica. Además, @Drazick, el código en github tiene un error cuando la imagen es más grande que aproximadamente 328 * 228, pero el resultado de una imagen pequeña es bueno. Muchas gracias por su entusiasta respuesta.
Kuo
3

No sugeriría una igualación como primer paso. Ir con reducción de ruido.

Grasa32
fuente
Entonces, ¿crees que primero necesito reducir el ruido? Entonces implementar ecualización de histograma?
Kuo
sí, reduzca el ruido primero. Una ecualización de histograma ciego puede o no mejorar sus bordes. Así que mejor mejora tus bordes de forma adaptativa.
Fat32
¿Cuándo el afilado de bordes reduce el ruido?
Tolga Birdal
¿Hay algún método que pueda usar para mejorar mi ventaja? He intentado el filtrado de alto impulso, pero en condiciones de bajo contraste, el filtrado de alto impulso no puede funcionar bien.
Kuo
El ruido de @tbirdal se reduce antes de que se afile el borde, de hecho, mi algoritmo es un afilador de imágenes adaptativo de borde no lineal con variante de espacio. Su objetivo principal es producir imágenes nítidas visualmente de alta calidad mientras se conserva la textura y no se amplifica el ruido. Sin embargo, dado que intenta proteger las texturas para que no se vean afectadas por la reducción de ruido, es posible que no produzca el resultado deseado para todo tipo de ruidos.
Fat32