Skip to main content

Vad är en kedjekod?

I datorgrafik och bildbehandling är en kedjekod en algoritm som används för att koda konturerna för ett objekt i ett svartvitt eller monokrom bild.Den resulterande sekvensen av koder kan antingen beskriva hur man ritar konturen av objektet relativt den bild där den finns, eller den kan vara en samling vägbeskrivningar relativt platsen i konturen där algoritmen startade, i huvudsak tillhandahålla steg somkan följas för att rita om objektet.Dessa koder kan normaliseras enligt en formel och jämförs sedan med en annan kedjekod för att avgöra om två objekt är identiska.En kedjekod kan användas för att isolera objekt i ett datorvisionsprogram eller bildsegmentering i bildbehandling, även om den oftare kan användas i OCR -program (optiska karaktärerigenkänning (OCR).

Även om det finns flera etablerade algoritmer för en kedjekod,Det grundläggande konceptet är detsamma i varje.Först är kanten på ett objekt beläget, vanligtvis genom att flytta pixel med pixel genom en rasterbild.När den är belägen registreras positionen och de omgivande kanterna upptäcks.Beroende på om detekteringsalgoritmen rör sig medurs eller moturs, flyttas den aktuella platsen i en eller annan riktning längs kanten tills den återgår till det ursprungliga positionen.

Varje gång den aktuella positionen rör sig, registreras ett nummer i kedjekoden.Detta nummer indikerar i allmänhet den riktning som flyttades längs kanten av objektet.Till exempel, om en kedjekodalgoritm följer en rak kant från höger till vänster, läggs varje gång kanten till vänster, den numeriska koden för vänster till vänster till slutet av koden.Den resulterande koden är en sträng av siffror där om sekvensen följs från en godtycklig utgångspunkt och en pixel placerad vid varje steg, skulle objektets kontur omarbetas.

När strängen med siffror som utgör koden kodenär klar, flera olika algoritmer kan tillämpas på den för att göra jämförelser med andra kedjekodsekvenser.För det första normaliseras antalet genom att rotera startnumret tills det lägsta heltalvärdet har fastställts.På detta sätt kan två objekt som har samma disposition jämföras, oavsett var på varje objekt kodningen startade.

Andra, mer komplexa versioner av kedjekodalgoritmen finns.Dessa inkluderar vektorbaserad kodning där konturen av ett objekt beskrivs av en sekvens av koordinater som är anslutna med linjer, även om denna metod kan vara förlust när den används på fina detaljerade konturer.En version av algoritmen finns också som använder körlängd kodning (RLE) för att ytterligare komprimera koderna för exceptionellt stora eller komplexa objekt så att de kan lagras på ett mer effektivt sätt.