Skip to main content

Ano ang isang chain code?

Sa computer graphics at pagproseso ng imahe, ang isang chain code ay isang algorithm na ginamit upang i -encode ang mga contour ng isang bagay sa isang itim at puti, o monochrome, imahe.Ang nagresultang pagkakasunud -sunod ng mga code ay maaaring ilarawan kung paano iguhit ang balangkas ng bagay na nauugnay sa imahe kung saan ito matatagmaaaring sundin upang i -redraw ang bagay.Ang mga code na ito ay maaaring mai -normalize ayon sa isang pormula at pagkatapos ay ihambing sa isa pang chain code upang matukoy kung magkapareho ang dalawang bagay.Ang isang chain code ay maaaring magamit para sa paghiwalayin ang mga bagay sa isang programa sa paningin ng computer o pagkakabukod ng imahe sa pagproseso ng imahe, kahit na mas madalas itong magamit sa mga programa ng optical pagkilala (OCR).

Bagaman mayroong maraming mga naitatag na algorithm para sa isang chain code,Ang pangunahing konsepto ay pareho sa bawat isa.Una, matatagpuan ang gilid ng isang bagay, karaniwang sa pamamagitan ng paglipat ng pixel sa pamamagitan ng pixel sa pamamagitan ng isang imahe ng raster.Kapag matatagpuan, ang posisyon ay naitala at ang mga nakapalibot na mga gilid ay napansin.Depende sa kung ang algorithm ng pagtuklas ay lilipat sa sunud -sunod o counterclockwise, ang kasalukuyang lokasyon ay inilipat sa isang direksyon o iba pa sa gilid hanggang sa bumalik ito sa orihinal na posisyon.

Sa bawat oras na gumagalaw ang kasalukuyang posisyon, ang isang numero ay naitala sa chain code.Ang bilang na ito sa pangkalahatan ay nagpapahiwatig ng direksyon na inilipat sa gilid ng bagay.Halimbawa, kung ang isang chain code algorithm ay sumusunod sa isang tuwid na gilid mula kanan hanggang kaliwa, pagkatapos sa bawat oras na ang gilid ay nasubaybayan sa kaliwa, ang numerical code para sa kaliwa ay idinagdag sa dulo ng code.Ang nagresultang code ay isang string ng mga numero kung saan, kung ang pagkakasunud -sunod ay sinusunod mula sa isang di -makatwirang panimulang punto at isang pixel na nakalagay sa bawat hakbang, ang balangkas ng bagay ay magiging redrawn.

Kapag ang string ng mga numero na bumubuo sa codeNakumpleto, maraming iba't ibang mga algorithm ang maaaring mailapat dito upang makatulong na gumawa ng mga paghahambing laban sa iba pang mga pagkakasunud -sunod ng chain code.Una, ang bilang ay na -normalize sa pamamagitan ng pag -ikot ng panimulang numero hanggang matukoy ang pinakamababang halaga ng integer.Sa ganitong paraan, ang dalawang bagay na may parehong balangkas ay maaaring ihambing, anuman ang kung saan sa bawat bagay na nagsimula ang pag -encode.

Iba pa, mas kumplikadong mga bersyon ng chain code algorithm.Kasama dito ang pag-encode na batay sa vector kung saan ang balangkas ng isang bagay ay inilarawan ng isang pagkakasunud-sunod ng mga coordinate na konektado sa pamamagitan ng mga linya, bagaman ang pamamaraang ito ay maaaring maging lossy kapag ginamit sa makinis na detalyadong mga balangkas.Ang isang bersyon ng algorithm ay umiiral din na gumagamit ng run-length encoding (RLE) upang higit pang i-compress ang mga code para sa pambihirang malaki o kumplikadong mga bagay upang maaari silang maiimbak sa isang mas mahusay na paraan.