Converti un disegno a tratteggio da raster a vettoriale ** LINEE **


16

Qui ci sono già domande del genere, come:

... e altri.

Ho un'immagine png in bianco e nero, contiene un disegno come un labirinto, ad esempio contiene solo linee , nessuna area.

È necessario convertirlo in (qualsiasi) formato vettoriale, ma come LINEE . Ogni programma che ho provato, ad esempio VectorMagic, potrace ecc. Converte le linee in aree di percorso chiuse.

Piccola parte dell'immagine PNG originale - ingrandita: inserisci qui la descrizione dell'immagine

Il risultato della traccia: inserisci qui la descrizione dell'immagine

Come puoi vedere, la "linea" viene tracciata da entrambi i lati come qualsiasi altra forma simile ad un'area.

Alla ricerca di un modo, come tracciare le linee in linee reali (PERCORSI) , meglio con la larghezza della linea corrispondente. (ma sarebbe sufficiente qualsiasi riga con).

Il motivo alla base: è necessario lavorare con le linee tracciate e i nodi, ad esempio convertire alcuni nodi in Bezier e simili. Impossibile (facilmente) con le forme.

Qualche idea:

  • come ottenere linee vettoriali da qualsiasi programma di tracciamento.
  • quale strumento può farlo? (qualsiasi SO - potrebbe usare Windows, OS X, Linux ..)

Risposte:


15

Traccia della linea centrale

Esiste uno strumento Open Source gratuito AutoTrace in grado di eseguire una traccia della linea centrale di una bitmap line-art.

inserisci qui la descrizione dell'immagine

Esegui AutoTrace con almeno le seguenti opzioni:

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

inserisci qui la descrizione dell'immagine

Possiamo quindi mettere a punto i tratti e aggiungere la forza desiderata.

È inoltre possibile installare il frontend grafico Frontline per AutoTrace nel caso in cui non si abbia familiarità con la riga di comando.

Gli utenti Linux potrebbero essere in grado di installare la funzione di autotrace fornita dai loro repository predefiniti nella maggior parte delle distribuzioni. Per Windows ci sono pacchetti precompilati da scaricare dalla pagina del progetto.

Ci sono molti parametri aggiuntivi per AutoTrace che puoi trovare nella pagina man dell'applicazione o chiamandola con autotrace -help.

Per ottenere piuttosto linee rette che spline possiamo ad esempio usare i seguenti parametri:

  • -line-threshold [real]:
    Se una spline non si discosta dalla linea retta definita dai suoi punti finali di oltre il numero specificato di pixel, trattarla come una linea retta (impostazione predefinita: 1).

  • - line-reversion-threshold [real]:
    Se una spline è più vicina a una linea retta rispetto a questa, ponderata per il quadrato della lunghezza della curva, mantenerla una linea retta anche se si tratta di un elenco con curve; il valore predefinito è 0,01.


1
+1 Sai se esiste un'opzione per tracciare solo per fare segmenti diritti con autotrace.
joojaa,

@joojaa: vedi modifica per le opzioni.
Takkat,

Vorrei poter far costruire l'autotrace ... Mi piacerebbe usarlo
slashdottir

1
@slashdottir: quale sistema stai usando? Il sito del progetto è stato trasferito su Github per lo sviluppo recente e per la segnalazione di bug. Ho modificato la risposta per includere il link.
Takkat,

Oh geniale! Sto usando OSX. Grazie mille per il link!
slashdottir,

9

Sinceramente ... prendi lo strumento penna e traccia i percorsi manualmente . Si otterrà il miglior risultato.

La traccia automatica non è spesso l'opzione migliore. Quando desideri solo percorsi che puoi tracciare, la traccia automatica generalmente fallisce miseramente.


l'immagine è davvero COMPLESSA con molte linee. Hanno anche più immagini - semplicemente troppo lavoro - alla ricerca di un'alternativa ...;)
jm666

anche io spero che lo "strumento" farà qualche ottimizzazione, ad esempio creerà sempre i percorsi più lunghi possibili e così via ... il lavoro manuale non è sempre il migliore;)
jm666

In bocca al lupo! Penso davvero che ciò che stai chiedendo richieda solo abilità manuale e pazienza. Non ho mai visto una soluzione automatizzata utile per creare percorsi singoli. Penso che tu stia cercando l'impossibile onestamente.
Scott,

2
@scott mentre in generale sono d'accordo con il tuo sentimento in questo caso specifico, potrebbe funzionare.
joojaa,

5

Prova a utilizzare Interpolate Paths dopo la traccia, come mostrato qui:

Colpo medio da un riempimento


WOW. Sembra MOLTO promettente. Grazie! +1.
jm666,

@ jm666 ofcourse questo tipo di metodo non automatizzerà molto bene a meno che tu non abbia a che fare con percorsi continui.
joojaa,

5

Illustrator può fare mezzeria tracciamento molto simile AutoTrace . Non è molto utile per la maggior parte delle cose, ma in questo caso l'immagine è altamente sintetica e potrebbe funzionare.

La tua immagine sorgente è notoriamente cattiva, quindi non c'è modo reale di provarlo senza perdere la qualità, i tuoi originali dovrebbero essere migliori (non è necessario essere così ingranditi)

Fai questo:

  1. Nelle impostazioni di traccia disabilitare i riempimenti e abilitare i tratti.

  2. Oggetto → Espandi

inserisci qui la descrizione dell'immagine

Immagine 1 : oggetto dopo traccia ed espansione.

  1. Per migliorare ulteriormente i risultati di eventuali errori di traccia, procedere come segue : Oggetto → Percorso → Semplifica , controllare i bordi dritti.

inserisci qui la descrizione dell'immagine

Immagine 2 : dopo la semplificazione

  1. Mi sembra che la tua immagine sia in qualche modo limitata nelle direzioni delle linee e nelle posizioni degli angoli, se è vero ora potresti provare a quantificare i punti per ottenere risultati ancora migliori (se non perfetti).

inserisci qui la descrizione dell'immagine

Immagine 3 : Cosa potrebbe fare la quantizzazione al risultato.

PS: dato che la fonte che hai condiviso è incompleta direi che il mio risultato è abbastanza buono. Anche se concordo sul fatto che in generale non è possibile fare affidamento sul tracciamento della linea, in questo caso funzionerebbe.

PPS: i tuoi angoli si sovrappongono, questo causa un po 'di difficoltà ai traccianti. Potresti rilevarli e correggerli con alcuni operatori di morfologia, ad esempio ImageMagick che dovrebbe rendere i traccianti MOLTO più felici.


Anche bello. Ora usando l'autotrace, a causa del semplice utilizzo della riga di comando - per molte immagini. L'immagine bitmap sopra è una piccola parte di un'immagine più grande (zoom del 1300%) :) - quindi sembra degradata. +1, grazie.
jm666,

@ jm666 certo, puoi anche usare Illustrator da cmd se vuoi, ma è un po 'di lavoro per iniziare.
joojaa,

Ho provato con la traccia dell'immagine di Illustrator e l'esempio per utilizzare solo i tratti. Non sono stato in grado di ottenere risultati utilizzabili. Devo ammettere che non ci ho investito molto tempo e il campione non è l'ideale per la traccia. Ma trovo che, in generale, l'impostazione della traccia di AI su solo tratti significa che ottieni solo il 30-60% della traccia reale tracciata a meno che l'originale non sia piuttosto solido e nitido prima della traccia.
Scott,

@Scott Ho ridotto l'immagine alla dimensione originale (ish) e al parametro di larghezza della linea regolato in modo che funzionasse. Quando si tracciano tratti di diversa larghezza, potrebbe essere necessario eseguirlo in 2 o 3 passaggi separati.
joojaa,


2

Ho trovato un buon strumento freeware chiamato WinTopo , che per me ha fatto il lavoro, ovvero il tracciamento della linea centrale.

Il metodo si chiama "vettorializzazione one touch" e funziona bene.

Dato che provengo da un contesto GIS - nella versione pro c'è un'opzione per Georeference prima i dati raster - potrebbe essere utile, non ancora testato.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.