Skip to main content

Wat is een kettingcode?

In computerafbeeldingen en beeldverwerking is een kettingcode een algoritme dat wordt gebruikt om de contouren van een object in een zwart -wit of monochroom beeld te coderen.De resulterende volgorde van codes kan beschrijven hoe de omtrek van het object ten opzichte van de afbeelding waarin het zich bevindt, te tekenen, of het kan een verzameling richtingen zijn ten opzichte van de locatie op de omtrek waar het algoritme is begonnen, in wezen stappen te bieden die stappen die stappen bieden datkan worden gevolgd om het object opnieuw te tekenen.Deze codes kunnen worden genormaliseerd volgens een formule en vervolgens vergeleken met een andere kettingcode om te bepalen of twee objecten identiek zijn.Een kettingcode kan worden gebruikt voor het isoleren van objecten in een computer vision -programma of beeldsegmentatie in beeldverwerking, hoewel deze vaker kan worden gebruikt in programma's voor optische karakterherkenning (OCR).

Hoewel er verschillende vastgestelde algoritmen zijn voor een kettingcode,Het basisconcept is in elk hetzelfde.Ten eerste bevindt de rand van een object zich, meestal door pixel door pixel door een rasterafbeelding te verplaatsen.Eenmaal gelokaliseerd, wordt de positie geregistreerd en worden de omliggende randen gedetecteerd.Afhankelijk van of het detectie -algoritme met de klok mee of tegen de klok in beweegt, wordt de huidige locatie in de ene of een andere richting langs de rand verplaatst totdat deze terugkeert naar de oorspronkelijke positie.

Telkens wanneer de huidige positie beweegt, wordt een getal opgenomen in de kettingcode.Dit nummer geeft in het algemeen de richting aan die langs de rand van het object is verplaatst.Als een ketencode -algoritme bijvoorbeeld een rechte rand van rechts naar links volgt, wordt elke keer dat de rand naar links wordt getraceerd, de numerieke code voor links toegevoegd aan het einde van de code.De resulterende code is een reeks getallen waarin, als de reeks wordt gevolgd vanuit een willekeurig startpunt en een pixel die bij elke stap is geplaatst, de omtrek van het object opnieuw wordt getekend.

Zodra de reeks getallen die de code vormenis voltooid, verschillende algoritmen kunnen erop worden toegepast om vergelijkingen te maken met andere ketencode -sequenties.Ten eerste wordt het nummer genormaliseerd door het startnummer te roteren totdat de laagste gehele waarde wordt bepaald.Op deze manier kunnen twee objecten die dezelfde omtrek hebben, worden vergeleken, ongeacht waar op elk object de codering begon.

Andere, meer complexe versies van het ketencode -algoritme bestaan.Deze omvatten vectorgebaseerde codering waarbij de omtrek van een object wordt beschreven door een reeks coördinaten die zijn verbonden door lijnen, hoewel deze methode verlies kan zijn bij gebruik op fijn gedetailleerde contouren.Er bestaat ook een versie van het algoritme dat gebruik maakt