Come creare Arte TSP partendo da un’immagine

In questo precedente articolo vi ho spiegato cos’è l’arte TSP e cosa mi ha spinto ad avvicinarmene. Oggi invece vi spiego il procedimento che ho utilizzato per creare alcune immagini TSP, come la seguente:

Una foto trasformata in Arte TSP
Una foto trasformata in Arte TSP

L’occorrente per creare arte TSP

Per la realizzazione purtroppo necessitiamo di un po’ di passaggi e programmi. Attualmente esiste un software chiamato stipplegen che fa tutto in “automatico”, ma non è semplice da utilizzare e ha molte limitazioni. Ciò di cui avremo bisogno noi è:

  • La nostra immagine in formato PNG che vogliamo convertire in arte TSP.
  • Il software voronoi.exe (vedi ZIP). Si tratta di un software open source, qui trovate maggiori informazioni e il codice sorgente. Richiede Microsoft Visual C++ 2010 SP1 Runtime Library.
  • Il software Concorde.
  • Due programmini per la conversione dei file (vedi ZIP). Trovate qui tutta la documentazione a riguardo.
  • Il software open source Inkscape.

Metto qui uno ZIP con tutti i programmi ad eccezione di Inkscape e Concorde. Quest’ultimi li potrete trovare nella sezione download dei siti che ho linkato. La procedura che esporrò funziona in ambiente Windows.

Preparare l’immagine PNG

Volendo si può usare qualsiasi immagine in formato PNG. Però per garantire un risultato migliore io consiglio di aumentare la luminosità e il contrasto delle vostre immagini. Per fare ciò potete servirvi di un sacco di software. Io ho usato Photoshop, ma ci sono molti programmi gratuiti che fanno lo stesso lavoro. Un esempio è il software gratuito GIMP (che potete scaricare in questa pagina).

Creare il puntinato

Adesso che è pronta l’immagine PNG, bisogna creare un insieme di punti che approssima la nostra immagine. Questi saranno i futuri “nodi” che andranno utilizzati per risolvere il problema TSP. Per fare ciò dovete prima di tutto estrarre lo ZIP che ho fornito precedentemente (ad esempio sul descktop). Spostate la vostra immagine PNG nella cartella di estrazione. Dopodiché su “start” di Windows digitate “cmd” e premete invio. Vi si aprirà il prompt dei comandi.prompt

Spostatevi ora col prompt dei comandi nella cartella di estrazione, dunque digitate per esempio:

cd Desktop

Se come me avete estratto nel desktop. Ora eseguiamo Voronoi. Digitate ad esempio:

 voronoi -s 16000 immagine.png output.svg

Schermata di esecuzione di Voronoi
Schermata di esecuzione di Voronoi

“16000” sono i punti che andranno ad approssimare l’immagine. Generalmente si sta in un range tra 10000 e 100000. “immagine.png” è il nome del vostro file formato PNG. Infine “output.svg” è il nome del file di output in formato SVG. Premuto invio si creerà nella stessa cartella di voronoi.exe (nel mio caso “desktop”) un file chiamato appunto “output.svg”. Se proverete ad aprirlo con Inkscape, visualizzerete un bel puntinato:

Immagine trasformata in puntinato
Immagine trasformata in puntinato

Convertire il file SVG

Questo file SVG va convertito. Per far ciò useremo il programma svg_extract.exe. Dunque sempre sul prompt dei comandi digitiamo:

svg_extract output.svg

Si creerà un file chiamato position.tsp nella cartella di estrazione (nel mio caso sempre desktop).

Realizziamo l’arte TSP

Apriamo questo file .tsp con Concorde. Visualizzeremo tutti i punti della nostra immagine. Per farne il tracciato bisogna andare in “Heuristic” > “Lin Kernighan”. Impostiamo #Kicks a 500 così da evitare che il processo richieda tempo estremamente eccessivo. Infine diamo l’OK. Aspettiamo finché non vedremo il tracciato creato. Andiamo su “file” e clicchiamo “Save tour”. Nella finestra che si aprirà, navighiamo fino alla nostra cartella di estrazione e salviamo il file come “tour.cyc”.

Il tracciato disegnato da Concorde
Il tracciato disegnato da Concorde

Convertiamo i nostri file in un SVG

Ora abbiamo così due file: uno che è output.svg e l’altro che è tour.cyc. Dobbiamo unirli in un unico file in formato SVG. Per fare ciò useremo il programma tsp2svg.exe. Riandiamo dunque sul prompt dei comandi e digitiamo:

tsp2svg output.svg tour.cyc

Si sarà creato un file chiamato tsp_art.svg. Questo è il nostro punto d’arrivo. Con Inkscape questo file può essere facilmente convertito in altri formati come PNG, JPG o sopratutto DXF.

Consigli e documentazione

Senza questo sito non sarei andato molto lontano, infatti molto di ciò che ho riportato qui viene da li. Mentre per quanto riguarda Voronoi, purtroppo il server del progetto non è più raggiungibile. Nonostante ciò è possibile accedere alle informazioni tramite la cache di Wayback Machine. Invece per Concorde, c’è tutto ciò da sapere sul loro sito. Sottolineo il fatto che più grande sarà l’immagine PNG e maggiori saranno il numero di punti scelti, maggiore sarà il tempo richiesto per realizzare l’arte TSP. Maggiori saranno i punti scelti, più definita l’immagine verrà fuori.

Edoardo Coen

Sono uno sviluppatore Web. Mi appassiona l'informatica e la tecnologia. Mi piace sperimentare e rendere partecipi gli altri dei miei progetti, dunque ho realizzato questo sito. Spero che in qualche modo ciò che condivido possa essere di aiuto a qualcuno. Approfondisci

Lascia un commento

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.