Hva er en kjedekode?
I datagrafikk og bildebehandling er en kjedekode en algoritme som brukes til å kode konturene til et objekt i et svart -hvitt, eller monokrom, bilde. Den resulterende sekvensen av koder kan enten beskrive hvordan du tegner konturen til objektet i forhold til bildet der det er lokalisert i, eller det kan være en samling retninger i forhold til stedet på omrisset der algoritmen startet, og i hovedsak gir trinn som kan følges for å tegne objektet. Disse kodene kan normaliseres i henhold til en formel og deretter sammenlignes med en annen kjedekode for å avgjøre om to objekter er identiske. En kjedekode kan brukes til å isolere objekter i et datamaskinvisjonsprogram eller bildesegmentering i bildebehandling, selv om det mer ofte kan brukes i OPTISK karaktergjenkjenning (OCR) -programmer.
Selv om det er flere etablerte algoritmer for en kjedekode, er det grunnleggende konseptet det samme i hver. Først er kanten av et objekt plassert, vanligvis ved å flytte piksel med pixel gjennom et rasterbilde. Når den er lokalisert, er posisjonen registrert og de omkringliggende kantene blir oppdaget. Avhengig av om deteksjonsalgoritmen vil bevege seg med klokken eller mot klokken, flyttes den nåværende plasseringen i en eller annen retning langs kanten til den går tilbake til den opprinnelige posisjonen.
Hver gang den nåværende posisjonen beveger seg, registreres et tall i kjedekoden. Dette tallet indikerer generelt retningen som ble flyttet langs kanten av objektet. For eksempel, hvis en kjedekode -algoritme følger en rett kant fra høyre til venstre, blir hver gang kanten spores til venstre, den numeriske koden for venstre legges til slutten av koden. Den resulterende koden er en streng med tall der, hvis sekvensen følges fra et vilkårlig utgangspunkt og en piksel plassert på hvert trinn, vil konturen til objektet være tegnet.
en gang strengen med tall som gjøre opp koden er fullført, flere forskjellige algoritmer kan brukes på den for å gjøre sammenligninger mot andre kjedekodesekvenser. Først normaliseres tallet ved å rotere startnummeret til den laveste heltallverdien bestemmes. På denne måten kan to objekter som har samme disposisjon sammenlignes, uavhengig av hvor på hvert objekt kodingen startet.
Andre, mer komplekse versjoner av kjedekodealgoritmen eksisterer. Disse inkluderer vektorbasert koding der omrisset av et objekt beskrives med en sekvens av koordinater som er koblet sammen med linjer, selv om denne metoden kan være tapt når den brukes på fin detaljerte konturer. En versjon av algoritmen eksisterer også som bruker koding av kjørelengde (RLE) for ytterligere å komprimere kodene for eksepsjonelt store eller komplekse objekter, slik at de kan lagres på en mer effektiv måte.