En realidad, solo hay un algoritmo de detección de borde real: convolución con un filtro.
Eso es tan eficiente como la memoria y la complejidad. Es una aproximación matemática del sonido para el gradiente. Los núcleos de filtro no traen grandes diferencias, adelante y use los sobel.
Existen numerosos enfoques más complejos, como el gradiente morfológico, la desviación estándar o incluso aprender una red neuronal para cada imagen. Sin embargo, en mi opinión, aunque a menudo funcionarán mejor en ciertas situaciones, la mayoría de las veces no se beneficia lo suficiente de ellos para justificar su complejidad adicional.
- ¿Cuál es la mejor práctica para el aprendizaje de algoritmos y programación?
- ¿Puedo adoptar un enfoque de alto nivel para aprender Machine Learning sin molestar a los matemáticos detrás de los algoritmos de ML?
- ¿Cómo pruebo que un tipo de matriz N de longitud basada en comparación no se puede hacer en tiempo O (N) en el peor de los casos?
- Después de que termina el programa de programación (estructuras de datos y algoritmo), ¿qué se les enseña a los estudiantes en CSE después de eso?
- Si uno es un desarrollador JS (comprende algoritmos, estructuras de datos, patrones), ¿qué tan difícil sería cambiar al desarrollo Java o C ++?
Que hay los pasos de procesamiento posterior. Los más conocidos son los 2 pasos astutos. Sin embargo no me gustan. A diferencia de la afirmación de optimismo del artículo (que solo se aplica a la convolución con una parte de filtro), los pasos de postprocesamiento son heurísticos e intensivos en cómputo. No veo cuándo serían útiles. La mayoría de las veces (¿siempre?) Necesita información de orden superior de la imagen, no solo bordes. Para esta información de orden superior, no querría un enfoque heurístico para aportar algo de aleatoriedad a mi algoritmo.