Co je to řetězový kód?
V počítačové grafice a zpracování obrázků je kód řetězce algoritmem používaným k kódování obrysů objektu v černé a bílé nebo monochromatickém obrázku. Výsledná sekvence kódů může buď popsat, jak nakreslit obrys objektu vzhledem k obrazu, ve kterém je umístěn, nebo to může být sbírka směrů vzhledem k umístění na obrysu, kde algoritmus začal, a v podstatě poskytovat kroky, které lze sledovat k překreslení objektu. Tyto kódy mohou být normalizovány podle vzorce a poté ve srovnání s jiným kódem řetězce, aby se určilo, zda jsou dva objekty identické. Kód řetězce lze použít pro izolaci objektů v programu počítačového vidění nebo segmentaci obrazu ve zpracování obrazu, i když častěji lze použít v programech optického rozpoznávání znaků (OCR).
Přestože existuje několik zavedených algoritmů pro kód řetězce, základní koncept je stejný v každém. Za prvé, okraj objektu je umístěn, obvykle přesunutím pixelu pomocí pixuel přes rastrový obrázek. Jakmile je umístěna, je zaznamenána poloha a jsou detekovány okolní hrany. V závislosti na tom, zda se detekční algoritmus pohybuje ve směru hodinových ručiček nebo proti směru hodinových ručiček, se aktuální umístění pohybuje jedním nebo druhým směrem podél okraje, dokud se nevrátí do původní polohy.
Pokaždé, když se aktuální pozice pohybuje, je v kódu řetězu zaznamenáno číslo. Toto číslo obecně označuje směr, který byl přesunut podél okraje objektu. Například, pokud algoritmus řetězce kódu sleduje rovnou hranu zprava doleva, pak pokaždé, když je hrana vysledována doleva, je numerický kód doleva přidán na konec kódu. Výsledný kód je řetězec čísel, ve kterých, pokud je sekvence sledována z libovolného výchozího bodu a pixelů umístěného v každém kroku, by se obrys objektu překreslil.
Jakmile je řetězec číselE UP Kód je dokončen, na něj lze použít několik různých algoritmů, aby se porovnávalo s jinými sekvencemi řetězce kódu. Nejprve je číslo normalizováno otáčením počátečního čísla, dokud není stanovena nejnižší celočíselná hodnota. Tímto způsobem lze porovnat dva objekty, které mají stejný obrys, bez ohledu na to, kde na každém objektu začalo kódování.
Existují jiné, složitější verze algoritmu řetězce kódu. Patří mezi ně vektorové kódování, ve kterém je obrys objektu popsán sekvencí souřadnic, které jsou spojeny řádky, ačkoli tato metoda může být ztráta při použití na jemně podrobných obrysech. Verze algoritmu také existuje, která používá kódování délky běhu (RLE) k dalšímu komprimování kódů pro výjimečně velké nebo komplexní objekty, aby mohly být uloženy efektivnějším způsobem.