Skip to main content

Cos'è un codice a catena?

In Computer grafica ed elaborazione delle immagini, un codice a catena è un algoritmo utilizzato per codificare i contorni di un oggetto in un'immagine in bianco e nero o monocromatico.La sequenza di codici risultante può descrivere come disegnare lo schema dell'oggetto rispetto all'immagine in cui si trova, oppure può essere una raccolta di direzioni rispetto alla posizione sul contorno in cui si è avviato l'algoritmo, fornendo sostanzialmente passi chepuò essere seguito per ridisegnare l'oggetto.Questi codici possono essere normalizzati in base a una formula e quindi confrontati con un altro codice a catena per determinare se due oggetti sono identici.Un codice a catena può essere utilizzato per isolare gli oggetti in un programma di visione informatica o per la segmentazione delle immagini nell'elaborazione delle immagini, sebbene più comunemente possa essere utilizzato nei programmi di riconoscimento ottico dei caratteri (OCR).

Sebbene ci siano diversi algoritmi stabiliti per un codice a catena,Il concetto di base è lo stesso in ciascuno.Innanzitutto, il bordo di un oggetto si trova, di solito spostando il pixel di pixel attraverso un'immagine raster.Una volta situata, la posizione viene registrata e vengono rilevati i bordi circostanti.A seconda che l'algoritmo di rilevamento si sposterà in senso orario o in senso antiorario, la posizione corrente viene spostata in una direzione o nell'altra lungo il bordo fino a quando non ritorna nella posizione originale.

Ogni volta che si muove la posizione corrente, un numero viene registrato nel codice della catena.Questo numero generalmente indica la direzione che è stata spostata lungo il bordo dell'oggetto.Ad esempio, se un algoritmo del codice a catena sta seguendo un bordo dritto da destra a sinistra, ogni volta che il bordo viene tracciato a sinistra, il codice numerico per sinistra viene aggiunto alla fine del codice.Il codice risultante è una stringa di numeri in cui, se la sequenza è seguita da un punto di partenza arbitrario e un pixel posizionato ad ogni passaggio, il profilo dell'oggetto verrebbe ridisegnato.

Una volta che la stringa di numeri che compongono il codiceè completato, diversi algoritmi possono essere applicati ad esso per contribuire a fare confronti con altre sequenze di codice a catena.Innanzitutto, il numero viene normalizzato ruotando il numero iniziale fino a quando non viene determinato il valore intero più basso.In questo modo, possono essere confrontati due oggetti che hanno lo stesso profilo, indipendentemente da dove su ciascun oggetto è iniziata la codifica.

Esistono altre versioni più complesse dell'algoritmo del codice a catena.Questi includono la codifica basata su vettori in cui il profilo di un oggetto è descritto da una sequenza di coordinate collegate dalle righe, sebbene questo metodo possa essere perdita se utilizzato su contorni finemente dettagliati.Esiste anche una versione dell'algoritmo che utilizza la codifica della lunghezza (RLE) per comprimere ulteriormente i codici per oggetti eccezionalmente grandi o complessi in modo che possano essere conservati in modo più efficiente.