Convierta un dibujo lineal de ráster a vector **LINEAS**

Aquí ya hay tales preguntas, como:

... y otros.

Tengo una imagen png en blanco y negro, contiene un dibujo como un laberinto, por ejemplo, contiene solo líneas , sin áreas.

Necesita convertirlo a (cualquier) formato vectorial, pero como LÍNEAS . Cada programa que probé, por ejemplo, VectorMagic, potrace, etc. convierte las líneas en áreas de camino cerrado.

Pequeña parte de la imagen PNG original - ampliada:ingrese la descripción de la imagen aquí

El resultado de la traza:ingrese la descripción de la imagen aquí

Como puede ver, la "línea" se traza desde ambos lados como cualquier otra forma similar a un área.

Buscando una manera, cómo trazar líneas en líneas reales (RUTAS) , mejor con el ancho de línea correspondiente. (pero sería suficiente con cualquier línea).

La razón detrás: necesita trabajar con las líneas y nodos trazados, por ejemplo, convertir algunos nodos a bezier y similares. No es posible (fácilmente) con formas.

Alguna idea:

  • cómo obtener líneas vectorizadas de cualquier programa de trazado.
  • ¿Qué herramienta puede hacer esto? (cualquier sistema operativo: podría usar Windows, OS X, Linux ...)

Respuestas (6)

Trazado de línea central

Existe una herramienta gratuita de código abierto, AutoTrace , que puede realizar un seguimiento de la línea central de un mapa de bits de arte lineal.

ingrese la descripción de la imagen aquí

Ejecute AutoTrace con al menos las siguientes opciones:

autotrace -centerline -color-count 2 -output-file output.svg -output-format SVG input.png 

ingrese la descripción de la imagen aquí

Luego podemos ajustar los trazos y agregar la fuerza de trazo deseada.

También podemos instalar la interfaz gráfica Frontline para AutoTrace en caso de que no estemos familiarizados con la línea de comandos.

Los usuarios de Linux pueden instalar el seguimiento automático proporcionado desde sus repositorios predeterminados en la mayoría de las distribuciones. Para Windows existen paquetes precompilados para descargar desde la página del proyecto.

Hay muchos parámetros adicionales para AutoTrace que se pueden encontrar en la página de manual de la aplicación o llamándolos con autotrace -help.

Para obtener líneas rectas en lugar de splines, podemos, por ejemplo, usar los siguientes parámetros:

  • -line-threshold [real]:
    si una spline no se desvía de la línea recta definida por sus extremos en más de la cantidad de píxeles especificada, trátela como una línea recta (predeterminado: 1).

  • - line-reversion-threshold [real]:
    Si una spline está más cerca de una línea recta que esto, ponderada por el cuadrado de la longitud de la curva, manténgala como una línea recta incluso si es una lista con curvas; el valor predeterminado es .01.

Actualizar

En versiones más recientes (Inkscape 1.0+) se incluye el rastreo de la línea central usando el rastreo automático * en Inkscape a través de Path > Trace Bitmap :

ingrese la descripción de la imagen aquí


* Referencia: Notas de la versión de Inkscape 1.0

+1 ¿Sabe si hay una opción para rastrear solo hacer segmentos rectos con autotrazado?
@joojaa: vea la edición para ver las opciones.
Desearía poder obtener autotrace para construir... Me encantaría usar esto
@slashdottir: ¿qué sistema estás usando? El sitio del proyecto se movió a Github para desarrollo reciente y para informes de errores. Edité la respuesta para incluir el enlace.
¡Oh brillante! Estoy usando OSX. ¡Muchas gracias por el enlace!
¿Cómo hacer que funcione en Windows? Descargué los archivos de Github. ¿Debo usar CMD? Después de hacer cd... a la ubicación deseada, escribo autotrace -help y aparece el mensaje: ¿ 'autotrace' is not recognized as an internal or external commandCómo hacer que funcione?
@PrzemyslawRemin: para Windows, necesita compilar el paquete para poder usarlo ... hay algunos binarios de Windows64 precompilados ( por ejemplo, aquí ), pero no pude probarlos, y parecen tener solo una funcionalidad limitada.
+1 actualice su respuesta porque las versiones recientes de Inkscape ya incluyen Autotrace.
@s.ouchene gracias por el aviso. Incluido.

Honestamente... toma la herramienta de lápiz y traza manualmente las rutas. Dará como resultado la mejor salida.

El seguimiento automático a menudo no es la mejor opción. Cuando solo desea rutas que pueda trazar, el seguimiento automático generalmente falla miserablemente.

la imagen es realmente COMPLEJA con muchas, muchas líneas. También tengo más imágenes - simplemente demasiado trabajo - buscando una alternativa... ;)
también espero que la "herramienta" realice alguna optimización, por ejemplo, creará siempre los caminos más largos posibles y así sucesivamente... el trabajo manual no siempre es el mejor;)
¡Buena suerte! Realmente creo que lo que estás pidiendo solo requiere habilidad manual y paciencia. Nunca he visto una solución automatizada que valga la pena para crear rutas únicas. Creo que estás buscando lo imposible honestamente.
@scott, aunque en general estoy de acuerdo con su opinión en este caso específico, podría funcionar.

Intente usar Interpolar rutas después de su seguimiento, como se muestra aquí:

Trazo promedio de un relleno

GUAU. Esto parece MUY prometedor. ¡Gracias! +1.
@ jm666, por supuesto, este tipo de método no se automatizará muy bien a menos que se trate de rutas continuas.

Illustrator puede realizar el trazado de la línea central de forma muy similar al trazado automático . No es muy útil para la mayoría de las cosas, pero en este caso la imagen es muy sintética y podría funcionar.

Su imagen de origen es notoriamente mala, por lo que no hay una forma real de probar esto sin perder calidad, sus originales deberían ser mejores (no es necesario que esté tan ampliada)

Hacer esto:

  1. En la configuración de trazado, deshabilite los rellenos y habilite los trazos.

  2. Objeto → Expandir

ingrese la descripción de la imagen aquí

Imagen 1 : Objeto después de trazar y expandir.

  1. Para mejorar aún más los resultados de cualquier error de seguimiento, haga lo siguiente: Objeto → Trazado → Simplificar , verifique los bordes rectos.

ingrese la descripción de la imagen aquí

Imagen 2 : Después de la simplificación

  1. Me parece que su imagen está algo limitada en las direcciones de las líneas y las ubicaciones de las esquinas, si eso es cierto, ahora podría intentar cuantificar los puntos para obtener resultados aún mejores (si no perfectos).

ingrese la descripción de la imagen aquí

Imagen 3 : Qué podría hacer la cuantificación con el resultado.

PD: dado que la fuente que compartiste está incompleta, diría que mi resultado es bastante bueno. Si bien estoy de acuerdo en que, en general, no es posible confiar en el rastreo de línea, funcionaría en este caso.

PPS: Sus esquinas se superponen, esto causa problemas a los trazadores automáticos. Podría detectarlos y corregirlos con algunos operadores de Morfología en ImageMagick, por ejemplo, que debería hacer que los trazadores fueran MUCHO más felices.

También agradable Ahora usando autotrace, debido al uso simple de la línea de comando, para muchas imágenes. La imagen de mapa de bits de arriba es una pequeña parte de una imagen más grande (1300% de zoom) :), por lo que parece degradada. +1, gracias.
@ jm666 claro, también puede usar Illustrator de cmd si lo desea, pero es un poco de trabajo para comenzar.
Probé con el trazo de imagen de Illustrator y la muestra para usar solo trazos. No pude obtener ningún resultado utilizable. Es cierto que no invertí mucho tiempo en ello, y la muestra no es ideal para rastrear. Pero encuentro que, en general, establecer el seguimiento de AI en solo trazos significa que solo obtienes 30-60% de la obra de arte real rastreada a menos que el original sea bastante sólido y nítido antes del rastreo.
@Scott reduje la imagen al tamaño original (más o menos) y ajusté el parámetro de ancho de línea para que simplemente funcionara. Cuando trace trazos de diferente ancho, es posible que deba hacerlo en 2 o 3 pasadas separadas.

Para Inkscape, también hay una extensión de seguimiento de línea central disponible en github: https://github.com/Moini/inkscape-centerline-trace (bifurcación de https://github.com/fablabnbg/inkscape-centerline-trace )

Actualización: el código de la bifurcación se ha fusionado con el original ahora, use el enlace fablabnbg.

Encontré una buena herramienta gratuita llamada WinTopo , que para mí hizo el trabajo, es decir, el seguimiento de la línea central.

El método se llama "vectorización de un toque" y funciona bien.

Como vengo de un contexto GIS, en la versión pro hay una opción para georreferenciar primero los datos ráster, podría ser útil, aún no probado.