Hola usuario de nuestra página web, tenemos la solución a lo que necesitas, desplázate y la encontrarás a continuación.
Solución:
Bordes se calculan como puntos que son extremos del gradiente de la imagen en la dirección del gradiente. si ayuda, puede pensar en ellos como los puntos mínimo y máximo en una función 1D. El punto es que los píxeles de borde son una noción local: simplemente señalan una diferencia significativa entre los píxeles vecinos.
Contornos a menudo se obtienen de los bordes, pero están destinados a ser contornos de objetos. Por lo tanto, deben ser curvas cerradas. Puedes pensar en ellos como límites (algunos algoritmos de procesamiento de imágenes y bibliotecarios los llaman así). Cuando se obtienen de los bordes, debe conectar los bordes para obtener un contorno cerrado.
La principal diferencia entre encontrar bordes y contornos es que si ejecuta la búsqueda de bordes, la salida es una imagen nueva. En esta nueva imagen (imagen de borde) tendrá bordes resaltados. Hay muchos algoritmos para detectar bordes, mira wiki, mira también.
Por ejemplo, el operador Sobel proporciona resultados “brumosos” uniformes. En su caso particular, el problema es que está utilizando el detector de bordes Canny. Este avanza unos pasos más que otros detectores. En realidad, ejecuta más pasos de refinamiento de bordes. La salida del detector Canny es, por lo tanto, una imagen binaria, con líneas de 1 px de ancho en lugar de bordes.
Por otra parte Contours
el algoritmo procesa una imagen binaria arbitraria. Entonces, si pones un cuadrado relleno de blanco sobre un fondo negro. despues de correr Contours
algoritmo, obtendría un cuadrado blanco vacío, solo los bordes.
¡Otra ventaja adicional de la detección de contornos es que en realidad devuelve un conjunto de puntos! Eso es genial, porque puedes usar estos puntos más adelante para algún procesamiento.
En tu caso particular, es pura coincidencia que ambas imágenes coincidan. No gobierna, y en su caso, se debe a la propiedad única del algoritmo Canny.
Los contornos en realidad pueden hacer algo más que “simplemente” detectar bordes. De hecho, el algoritmo encuentra bordes de imágenes, pero también los coloca en una jerarquía. Esto significa que puede solicitar los bordes exteriores de los objetos detectados en sus imágenes. Tal cosa no sería (directamente) posible si solo verifica los bordes.
Como se puede leer en la documentación, la detección de contornos se usa principalmente para el reconocimiento de objetos, mientras que el detector de bordes astutos es una operación más “global”. No me sorprendería si el algoritmo de contorno utiliza algún tipo de detección de bordes astutos.