Hola usuario de nuestro sitio, descubrimos la respuesta a lo que buscas, has scroll y la encontrarás a continuación.
Solución:
Tenemos algoritmos de segmentación y detección de bordes en el desarrollado activamente scikit-image
que te puede resultar útil:
Ejemplos de imágenes de Scikit
Puede lograr fácilmente la detección de bordes con scipy en python.
from scipy import ndimage
edge_horizont = ndimage.sobel(greyscale, 0)
edge_vertical = ndimage.sobel(greyscale, 1)
magnitude = np.hypot(edge_horizont, edge_vertical)
Y aquí hay un ejemplo de la imagen original y la imagen después de la detección de bordes.
En scikit-image, hay una página especial con explicaciones sobre cómo realizar la detección de bordes.
Hay una forma muy sencilla de encontrar contornos en python con una imagen de scikit. En realidad es solo un par de líneas de código, así:
from skimage import measure
contours = measure.find_contours(gimg, 0.8)
Esto devuelve la representación vectorial de las curvas de nivel. en un separado array para cada línea. Y también es fácil disminuir el número de puntos en una línea calculando una aproximación. Aquí hay una descripción un poco más larga con el código fuente: vectorización de imágenes con python
Sección de Reseñas y Valoraciones
Si entiendes que te ha resultado de provecho este post, sería de mucha ayuda si lo compartieras con el resto programadores y nos ayudes a extender este contenido.