Convierta un dibujo lineal de ráster a vector ** LÍNEAS **

16

Aquí ya hay preguntas como:

... y otros.

Tengo una imagen png en blanco y negro, contiene un dibujo como un laberinto, por ejemplo, solo contiene líneas , no á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 ruta cerradas.

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 de área.

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

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

Alguna idea:

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

Respuestas:

15

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 comando.

Los usuarios de Linux pueden instalar autotrace provistos desde sus repositorios predeterminados en la mayoría de las distribuciones. Para Windows hay 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 llamando a autotrace -help.

Para obtener más bien líneas rectas que splines, por ejemplo, podemos usar los siguientes parámetros:

  • -line-threshold [real]:
    Si una spline no se desvía de la línea recta definida por sus puntos finales en más del número de píxeles especificado, trátela como una línea recta (valor predeterminado: 1).

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

Takkat
fuente
1
+1 ¿Sabe si hay una opción para trazar solo hacer segmentos rectos con autotrace?
joojaa
@joojaa: vea editar para ver las opciones.
Takkat
Desearía poder construir un autotrace ... Me encantaría usar esto
slashdottir
1
@slashdottir: ¿qué sistema estás usando? El sitio del proyecto se trasladó a Github para el desarrollo reciente y para informes de errores. Edité la respuesta para incluir el enlace.
Takkat
Oh genial! Estoy usando OSX. ¡Muchas gracias por el enlace!
slashdottir
9

Honestamente ... tome la herramienta de lápiz y trace manualmente los caminos. Resultará en la mejor salida.

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

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

Intente usar rutas de interpolación después de su trazo, como se muestra aquí:

Carrera promedio de un relleno

Sean
fuente
GUAU. Esto se ve MUY prometedor. ¡Gracias! +1.
jm666
@ jm666 por supuesto, este tipo de método no se automatizará muy bien a menos que se trate de caminos continuos.
joojaa
5

Illustrator puede hacer el trazado de la línea central de forma muy similar al trazado automático . No es súper ú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én tan ampliados)

Hacer esto:

  1. En la configuración de rastreo, 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 → Ruta → 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 línea y en 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é cuantificación podría hacer al 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 trazado de líneas, funcionaría en este caso.

PPS: sus esquinas se superponen, esto causa problemas a los trazadores automáticos. Puede detectarlos y corregirlos con algunos operadores de morfología en, por ejemplo, ImageMagick, que deberían hacer que los trazadores sean MUCHO más felices.

joojaa
fuente
También agradable Ahora usando autotrace, debido al uso simple de la línea de comandos, para muchas imágenes. La imagen de mapa de bits anterior es una pequeña parte de una imagen más grande (1300% de zoom) :), por lo tanto, se ve degradada. +1, gracias.
jm666
@ jm666 seguro, también puede usar Illustrator desde cmd si lo desea, pero es un poco de trabajo comenzar.
joojaa
Intenté con el trazado de imagen del ilustrador 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 el rastreo. Pero creo que, en general, configurar el rastro de AI en solo trazos significa que solo obtienes del 30-60% de la obra de arte real rastreada a menos que el original sea bastante sólido y nítido antes del trazado.
Scott
@ Scott reduje la imagen al tamaño original (ish) y ajusté el parámetro de ancho de línea para que simplemente funcionara. Cuando trazas trazos de diferente ancho, es posible que tengas que hacerlo en 2 o 3 pasadas separadas.
joojaa
2

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 SIG, en la versión pro hay una opción para Georreferenciar los datos ráster primero, podría ser útil, aún no probado.

ORiAX
fuente