¿Qué factores debo considerar al elegir un algoritmo de detección de bordes?


33

Aprendí sobre varios algoritmos de detección de bordes, incluidos algoritmos como los métodos Sobel, Laplacian y Canny. Me parece que el detector de bordes más popular es un detector de bordes Canny, pero ¿hay casos en los que este no sea el algoritmo óptimo para usar? ¿Cómo puedo decidir qué algoritmo usar? ¡Gracias!


77
Que estas detectando
endolito

Respuestas:


29

Hay muchas posibilidades de detección de bordes, pero los 3 ejemplos que mencionas se dividen en 3 categorías distintas.

Sobel

Esto se aproxima a una derivada de primer orden. Da extremos en las posiciones de gradiente, 0 donde no hay gradiente presente. En 1D, es =[101]

  • borde liso => ​​mínimo o máximo local, dependiendo de la señal que sube o baja.
  • 1 línea de píxeles => 0 en la línea misma, con extremos locales (de signo diferente) justo al lado. En 1D, es =[121]

Hay otras alternativas a Sobel, que tienen +/- las mismas características. En la página de Roberts Cross en Wikipedia, puede encontrar una comparación de algunos de ellos.

Laplace

Esto se aproxima a una derivada de segundo orden. Da 0 en las posiciones de gradiente y también 0 donde no hay gradiente presente. Da extremos donde comienza o se detiene un gradiente (más largo).

  • borde liso => ​​0 a lo largo del borde, extremos locales en el inicio / parada del borde.
  • Línea de 1 píxel => un extremo "doble" en la línea, con extremos "normales" con un signo diferente justo al lado

El efecto de estos 2 en diferentes tipos de bordes se puede ver mejor visualmente:

Comparación de Sobel vs Laplace

Astuto

Este no es un operador simple, sino un enfoque de varios pasos, que utiliza Sobel como uno de los pasos. Cuando Sobel y Laplace le dan un resultado en escala de grises / coma flotante, que necesita para su propio umbral, el algoritmo Canny tiene un umbral inteligente como uno de sus pasos, por lo que solo obtiene un resultado binario de sí / no. Además, en un borde liso, es probable que encuentre solo 1 línea en algún lugar en el medio del gradiente.


18

Mientras Sobel y Laplacian son simplemente filtros, Canny va más allá que eso de dos maneras.

Primero, hace una supresión no máxima que elimina el ruido producido por todo tipo de objetos y gradientes de color en una imagen. En segundo lugar, en realidad incluye un paso que le permite discernir entre diferentes direcciones de borde y llenar puntos faltantes de una línea.

En otras palabras, el detector de bordes Canny está en una clase completamente diferente de Sobel y Laplacian. Es mucho más inteligente porque incluye un montón de postprocesamiento, mientras que Sobel y Laplacian son simplemente salidas de filtro de paso alto seguidas de un umbral binario lineal.


¿Hay una versión 1-D de Canny a este respecto? ¿Sería simplemente una aplicación sencilla de la versión 2-D?
Spacey

9

Las dos decisiones más importantes al tratar de detectar bordes son, para mí, generalmente:

  1. ¿Puedo segmentar los objetos en su lugar y luego usar un operador morfológico para encontrar el borde de la imagen binaria (segmentada)? Con datos ruidosos, esto tiende a ser más robusto.

  2. ¿Qué filtro de suavizado de preservación de bordes debo usar para reducir el ruido de la imagen? Los filtros de borde se basan en la diferenciación, que sufrirá con datos ruidosos. La opción más simple es el filtro mediano, pero la difusión anisotrópica o los filtros de medios no locales ofrecerán un mejor rendimiento a costa de tener más parámetros para ajustar.

Para la detección de bordes en sí, no puedo pensar por una buena razón para no usar Canny.


7

Enfoque de SUSAN

Otro enfoque para la detección de bordes y esquinas es el enfoque SUSAN .

En este enfoque, en lugar de aproximaciones derivadas, se utiliza un enfoque de aproximación integral . Esto tiene la ventaja de no solo poder detectar bordes, sino también poder detectar "características bidimensionales" (es decir, esquinas).

Otra ventaja de un enfoque de aproximación integral es que el ruido tiende a tener menos efecto en los resultados.


6

Canny produce una imagen binaria y depende de umbrales dados externamente (que dependen de la imagen / aplicación).
Los filtros basados ​​en convolución producen una imagen de "intensidad de borde". Esto es útil si el peso o la resistencia del borde es importante (por ejemplo, en la Transformación de Hough ponderada).

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.