Kaj je verižna koda?

V računalniški grafiki in obdelavi slik je verižna koda algoritem, ki se uporablja za kodiranje kontur predmeta v črno-belo ali enobarvno sliko. Nastalo zaporedje kod lahko opisuje, kako narisati obris predmeta glede na sliko, v kateri se nahaja, ali pa je lahko zbirka smeri glede na lokacijo na obrisu, kjer se je algoritem začel, v bistvu zagotavlja korake, ki lahko sledite za ponovno risanje predmeta. Te kode je mogoče normalizirati v skladu s formulo in jih nato primerjati z drugo verižno kodo, da ugotovimo, ali sta dva predmeta identična. Verižna koda se lahko uporablja za izolacijo predmetov v programu za računalniški vid ali segmentacijo slike pri obdelavi slik, čeprav se pogosteje uporablja v programih za optično prepoznavanje znakov (OCR).

Čeprav obstaja več uveljavljenih algoritmov za verižno kodo, je osnovni koncept v vsakem enak. Prvič, rob predmeta se locira, običajno s premikanjem pikslov za slikovno piko skozi rastrsko sliko. Ko se nahaja, se položaj zabeleži in zaznajo se okoliški robovi. Glede na to, ali se bo algoritem za zaznavanje premaknil v smeri urinega kazalca ali v nasprotni smeri urinega kazalca, se trenutna lokacija premakne v eno ali drugo smer vzdolž roba, dokler se ne vrne v prvotni položaj.

Vsakič, ko se trenutni položaj premakne, se v kodo verige zabeleži številka. Ta številka na splošno označuje smer, ki je bila premaknjena vzdolž roba predmeta. Na primer, če algoritem verižne kode sledi ravnemu robu od desne proti levi, se vsakič, ko se rob izsledi na levo, doda številčna koda za levo na konec kode. Nastala koda je niz številk, v katerem bi se obris predmeta na novo narisal, če bi zaporedju sledili iz poljubne začetne točke in piksel, ki je postavljen na vsakem koraku.

Ko je niz številk, ki sestavljajo kodo, dokončan, se lahko nanj uporabi več različnih algoritmov, ki pomagajo pri primerjavi z drugimi zaporedji verižnih kod. Najprej se število normalizira z vrtenjem začetne številke, dokler ni določena najnižja celo število. Na ta način je mogoče primerjati dva predmeta, ki imata enak obris, ne glede na to, kje na posameznem objektu se je kodiranje začelo.

Obstajajo tudi druge, bolj zapletene različice algoritma verižne kode. Ti vključujejo vektorsko kodiranje, pri katerem je obris predmeta opisan z zaporedjem koordinat, ki so povezane s črtami, čeprav je ta metoda lahko izgubljena, če se uporablja na fino podrobnih obrisih. Obstaja tudi različica algoritma, ki uporablja kodiranje dolžine izvajanja (RLE) za nadaljnje stiskanje kod za izjemno velike ali kompleksne objekte, tako da jih je mogoče shraniti na učinkovitejši način.