Come funziona la vettorizzazione
La funzione di vettorizzazione trasforma un’immagine raster in un insieme di curve e polilinee vettoriali. Il processo parte dall’immagine selezionata, la converte in una rappresentazione binaria, ripulisce il rumore, estrae gli assi centrali dei tratti e infine semplifica le geometrie ottenute per creare elementi vettoriali più leggeri e gestibili.

Fase di binarizzazione
La prima operazione consiste nel separare il disegno dallo sfondo. Questo avviene tramite una soglia automatica basata su Otsu, con la possibilità di usare anche un valore manuale quando l’immagine richiede un controllo più diretto. In questa fase l’immagine viene trasformata in bianco e nero, così da isolare i tratti significativi e preparare il contenuto alle elaborazioni successive.
Pulizia dell’immagine
Dopo la binarizzazione, il programma applica operazioni morfologiche di apertura e chiusuracon un elemento strutturante 3×3. Queste operazioni servono a ridurre il rumore, eliminare piccoli artefatti isolati e ricucire eventuali interruzioni minime nei tratti grafici. Il risultato è un’immagine più stabile, adatta alla fase di estrazione delle linee.
Skeleton e linee centrali
Il cuore dell’algoritmo è la skeletonization, cioè la riduzione dei tratti a una linea centrale di spessore unitario. In questo caso viene usata una variante di thinning iterativo in stile Zhang-Suen, molto adatta a immagini binarie e utilizzata spesso come base per la ricostruzione di linee centrali.
Una volta ottenuto lo skeleton, il programma analizza la connettività dei pixel per ricostruire rami, nodi, loop e segmenti continui.
Estrazione delle polilinee
Dal reticolo di pixel skeletonizzati vengono estratte delle polilinee ordinate. Il procedimento identifica i nodi, segue i rami tra un nodo e l’altro e gestisce anche i loop chiusi senza nodi terminali. In questo modo la struttura raster viene convertita in geometrie vettoriali vere e proprie, mantenendo l’andamento principale dei tratti originali.
Semplificazione geometrica
Le polilinee ottenute possono contenere molti punti ravvicinati o dettagli inutili. Per questo viene applicata una semplificazione tramite Douglas-Peucker con una tolleranza configurabile. Questo riduce il numero di vertici senza alterare in modo significativo la forma del tratto, rendendo il risultato più pulito e leggero.
Filtri sui risultati
Prima di creare gli oggetti finali, il programma applica alcuni filtri:
- eliminazione di polilinee troppo corte;
- rimozione di componenti con area troppo piccola;
- eventuale preservazione delle linee sottili;
- controllo della distanza minima tra vertici.
Questi parametri servono a evitare che il risultato contenga rumore, frammenti insignificanti o elementi geometrici poco utili nel disegno finale.
Librerie utilizzate
La vettorizzazione sfrutta principalmente:
- Qt, per la gestione dell’interfaccia, delle immagini e degli oggetti grafici;
- OpenCV, per la conversione in scala di grigi, la sogliatura, le operazioni morfologiche e l’elaborazione della matrice binaria.
Qt gestisce anche la visualizzazione dell’anteprima e la creazione degli elementi grafici che finiscono nel documento, mentre OpenCV si occupa della parte computazionale più pesante.
Procedure di lavoro
Il flusso operativo è il seguente:
- selezione dell’immagine;
- apertura della finestra di vettorizzazione;
- regolazione dei parametri con anteprima immediata;
- generazione delle polilinee vettoriali;
- conferma del risultato e inserimento nel layer corrente.
La finestra mostra in parallelo immagine originale e risultato, così l’utente può valutare subito l’effetto delle impostazioni.
Interpretazione pratica
In termini semplici, il programma non “disegna” da zero: legge i pixel dell’immagine, ne interpreta la struttura, elimina il superfluo e ricostruisce le forme principali come oggetti vettoriali modificabili. Il risultato è particolarmente utile per planimetrie, schemi tecnici, mappe e fotografie di disegni o rilievi in cui si vuole recuperare una geometria pulita e scalabile.
Limiti e qualità del risultato
La qualità dipende molto dalla qualità dell’immagine di partenza. Un’immagine ben contrastata, con linee nette e poco rumore, produce risultati migliori; al contrario, immagini sfocate, compresse o molto irregolari richiedono più correzione manuale e possono produrre geometrie meno precise.
Per questo la finestra di dialogo offre più parametri regolabili: non esiste un set unico valido per tutti i casi, ma un controllo progressivo che permette di adattare il risultato al tipo di disegno.







