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 bianco e nero o monocromatico. La sequenza di codici risultante può descrivere come disegnare il profilo dell'oggetto rispetto all'immagine in cui si trova, oppure può essere una raccolta di direzioni rispetto alla posizione sul contorno in cui l'algoritmo è iniziato, essenzialmente fornendo passi che possono essere seguiti 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 la posizione corrente si sposta, 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 la stringa di numeri che MakE UP Il codice è completato, possono essere applicati diversi algoritmi 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 archiviati in modo più efficiente.