1. Home
  2. Tutorial
  3. Tracciamento di bitmap in Ruby

Tracciamento di bitmap in Ruby

Intenzione

Il tracciamento delle bitmap serve a convertire i dati delle bitmap in dati vettoriali rilevando i bordi. Il rilevamento avviene tramite il confronto dei valori di grigio. Per rilevare i bordi, i valori dei colori devono essere sufficientemente diversi, altrimenti il tracciamento fallirà.

Tracciare l’immagine bitmap

Per avviare la traccia è sufficiente selezionare l’immagine e fare clic sull’icona della traccia.


Si aprirà il seguente widget.

Regolare i parametri e fare clic su “Trace” per avviare il processo di tracciamento.
A seconda dell’immagine di partenza e dei valori scelti, si otterrà un risultato di tracciamento.

Nota: se le impostazioni risultano in una traccia vuota, viene visualizzato un messaggio di errore e non viene creato alcun vettore!

Parametri

Solo contorno esterno

Limita il rilevamento dei bordi solo al contorno più esterno. In questo modo l’algoritmo di tracciamento non cercherà altri contorni all’interno di quelli rilevati. Questa funzione viene utilizzata quando si intende tagliare il contorno esterno.

Tracciamento con il solo contorno esterno attivato (sotto) vs. disattivato (sopra)

Dimensione del cluster ignorata

Questo parametro viene utilizzato per ridurre al minimo il rumore. Aumentando questo valore, Rubyindica di ignorare gli agglomerati di pixel più grandi con colori simili.


Tracciamento con dimensione del cluster di 1 (sopra), 10 (al centro) e 30 (sotto).
L’aumento del valore filtra i punti bianchi più grandi fino a rilevare solo il contorno (rettangolo nero).

Soglia in bianco e nero

Questo parametro ha il massimo impatto sul tracciamento, perché definisce il livello di contrasto che verrà utilizzato per rilevare i bordi.
Il numero rappresenta il valore di grigio (indice 0-255) che verrà utilizzato come soglia per aggiungere o meno un pixel al vettore. Ciò significa che qualsiasi valore inferiore sarà considerato nero, mentre qualsiasi valore superiore sarà considerato bianco. Le aree bianche e nere risultanti definiscono i bordi che verranno rilevati (questa operazione viene eseguita su uno sfondo non visibile all’utente).


I risultati dipendono dalla soglia selezionata. All’inizio vengono rilevate solo le aree realmente scure, alla fine viene escluso solo lo sfondo bianco.

Livelli uniformi

Poiché le immagini sono costituite da pixel, questi formano delle “scale” quando vengono ingrandite a sufficienza.

Il tracciamento dell’immagine genererebbe quindi un vettore che segue queste “scale”. Nella maggior parte dei casi ciò non è intenzionale.
Con “Livello liscio” è possibile definire la precisione con cui l’algoritmo deve seguire il contorno. Una lisciatura più elevata produrrà vettori meno spigolosi. D’altra parte, una lisciatura eccessiva può far perdere dettagli.


Il tracciato di una “o” senza smoothing (a sinistra) e con smoothing elevato (a destra) mostra chiaramente l’effetto sui cerchi.


Se si liscia troppo, si perdono i dettagli.

Come ottenere il meglio

Immagini di partenza di alta qualità

Le bitmap in Rubyvengono sempre convertite in immagini in scala di grigi. Utilizzate bitmap di alta qualità, perché danno i risultati migliori. Anche le immagini che condividono i colori tra la sezione da tracciare e lo sfondo sono difficili da tracciare. Non è possibile produrre un bordo chiaro.

  • Buono – alta qualità, buona risoluzione, alto contrasto, pochi anti-aliasing sui bordi, nessun colore misto
  • Male – bassa risoluzione, scarso contrasto, forte antialias
  • Scorretto: i colori del coltello e dello sfondo sono mescolati e non è possibile creare un bordo.

Migliorare l’immagine prima di tracciarla

Eliminare il più possibile il rumore nell’immagine regolando il contrasto e la soglia del colore. Tutto ciò che non è presente nella bitmap non può essere rilevato in modo errato. Ci sono alcuni consigli da seguire dentro e fuori Ruby:

Regolazioni prima dell’importazione in Ruby

Ritagliare la parte necessaria dell’immagine

Tagliare le parti non necessarie per il contorno. Anche la rotazione dell’immagine può essere utile per ritagliare solo la parte desiderata.

Prima:

Dopo:

Rimuovere altri contenuti

Aprire l’immagine con un editor di immagini e rimuovere il più possibile lo sfondo o le parti indesiderate (gomma, sostituzione del colore, ecc.).

Regolazioni all’interno di Ruby ®

Regolare la soglia del colore (curva di tono)

Regolare le soglie di colore per migliorare la qualità dei bordi. Per farlo, selezionare l’immagine e fare clic sulla matita nell’angolo in alto a destra.

Ora cercate di regolare l’immagine in modo che lo sfondo diventi il più luminoso possibile e il contorno il più nero possibile.
È possibile anche il contrario, ma rileva il contorno inverso!

Per modificarlo facilmente, è possibile invertire l’immagine. Questo può sembrare poco familiare, ma non altera il contorno per l’algoritmo di tracciamento e permette di tracciare quello giusto.

Fondamentalmente funziona così:

  • L’asse X definisce il colore di ingresso (= quali valori di grigio dell’originale devono essere modificati).
    • Lo spostamento di un punto a sinistra include più colori verso il nero
  • L’asse Y definisce il colore di uscita (= a quale colore deve essere modificato il colore di ingresso).
    • Spostando la punta verso l’alto si ottiene un colore più brillante (verso il bianco).
  • Afferrate la linea in qualsiasi punto e spostatela secondo le vostre esigenze.
    • Tutti i colori tra i punti verranno modificati di conseguenza

Spiegazioni più dettagliate possono essere trovate sul web cercando “tone curve input output”.

Gli esempi seguenti illustrano le differenze:


Lo sfondo bianco e il contorno nero sono facili da tracciare e danno il contorno desiderato.


Sfondo nero, contorno bianco è più difficile da tracciare e produce il contorno inverso.

Sintesi

  • Utilizzate immagini di buona qualità.
  • Le bitmap di cattiva qualità (ad esempio, bassa risoluzione, molti artefatti, basso contrasto, colori condivisi tra contorno e sfondo, ecc.
  • Preparare l’immagine sorgente nel modo più ottimale possibile per il tracciamento.
    Rimuovere il rumore e le parti non necessarie, regolare le soglie di contrasto e di colore: ciò che non c’è, non può essere rilevato erroneamente.
  • Conoscere i risultati da raggiungere.
    Modificare i parametri giusti nel modo giusto. Fare prove ed errori richiede molto tempo e spesso è frustrante.
  • Il tracciamento delle bitmap non può fare magie
    Se il contorno non è chiaramente definito (perché presenta, ad esempio, ombre, parti luminose che si fondono con lo sfondo, ecc.
Updated on 9. Settembre 2022

Related Articles