Hvad er en kædekode?
I computergrafik og billedbehandling er en kædekode en algoritme, der bruges til at kode konturerne af et objekt i et sort / hvidt eller monokromt billede. Den resulterende række af koder kan enten beskrive, hvordan man tegner konturen af objektet i forhold til det billede, hvori det er placeret, eller det kan være en samling af retninger i forhold til placeringen på det kontur, hvor algoritmen startede, hvilket i det væsentlige giver trin, der kan følges for at tegne objektet igen. Disse koder kan normaliseres i henhold til en formel og derefter sammenlignes med en anden kædekode for at bestemme, om to objekter er identiske. En kædekode kan bruges til at isolere objekter i et computervisionsprogram eller billedsegmentering i billedbehandling, skønt det mere almindeligt kan bruges i optiske karaktergenkendelse (OCR) -programmer.
Selvom der er flere etablerede algoritmer til en kædekode, er det grundlæggende koncept det samme i hver. For det første er kanten af et objekt placeret, normalt ved at flytte pixel af PixEl gennem et rasterbillede. Når den er placeret, registreres positionen, og de omgivende kanter detekteres. Afhængig af om detektionsalgoritmen bevæger sig med uret eller mod uret, flyttes den aktuelle placering i en eller anden retning langs kanten, indtil den vender tilbage til den oprindelige position.
Hver gang den aktuelle position bevæger sig, registreres et tal i kædekoden. Dette antal angiver generelt den retning, der blev bevæget langs kanten af objektet. For eksempel, hvis en kædekodalgoritme følger en lige kant fra højre til venstre, sættes den numeriske kode til venstre til venstre til venstre til venstre til venstre til venstre til venstre til slutningen af koden. Den resulterende kode er en række numre, hvor, hvis sekvensen følges fra et vilkårligt udgangspunkt og en pixel placeret på hvert trin, ville konturen af objektet blive tegnet.
når den række numre, som makE -op koden er afsluttet, flere forskellige algoritmer kan anvendes på den for at hjælpe med at foretage sammenligninger med andre kædekodesekvenser. For det første normaliseres antallet ved at dreje startnummeret, indtil den laveste heltalværdi bestemmes. På denne måde kan to objekter, der har den samme kontur, sammenlignes, uanset hvor på hvert objekt kodningen startede.
Andre, mere komplekse versioner af kæde -kodealgoritmen findes. Disse inkluderer vektorbaseret kodning, hvor konturen af et objekt er beskrevet af en række koordinater, der er forbundet med linjer, skønt denne metode kan være tabt, når det bruges på finalderede konturer. En version af algoritmen findes også, der bruger run-længde-kodning (RLE) til yderligere at komprimere koderne til usædvanligt store eller komplekse objekter, så de kan gemmes på en mere effektiv måde.