
Դիթերինգ QR կոդերում. ինչպես թաքցնել լուսանկար աշխատող կոդի ներսում
Ծրագրավորող Էնդրյու Թեյլորը բացատրում է, թե ինչպես սխալների տարածումը և երկկրկնակ մեթոդը թույլ են տալիս QR կոդին կրել միաբիթ դիմանկար և միաժամանակ սկանավորվել։
QR կոդը կարող է սկանավորվել նույնիսկ ներսում թաքցված լուսանկարով — եթե գիտես, թե ինչպես ծռել կանոնները։ Դիթերինգով QR կոդերի գեներատորի հեղինակ, ծրագրավորող Էնդրյու Թեյլորը հրապարակել է ուղեցույց իր գործիքի տեխնիկայի մասին. այն սովորական կոդերը վերածում է միաբիթ դիմանկարների, իսկ բուն կոդը բաց է Codeberg-ում։
QR կոդի անատոմիան
QR կոդը քառակուսիների ցանց է, որը բաժանվում է երկու մասի. ֆունկցիոնալ նախշերը — ցցուն ձևերը, որոնք սկաներին օգնում են գտնել կոդը և որոշել դրա կողմնորոշումը — և տվյալների մոդուլները, որտեղ պահվում են հաղորդագրությունն ու վերնագրային բայթերը։ Քանի որ մոդուլները կարդացվում են միայն այն բանից հետո, երբ սկաները կպչում է ֆունկցիոնալ նախշերին, դրանք կարելի է փոփոխել — դրա համար են ապրանքանիշերը տպում ինքնատիպ QR կոդեր — սակայն յուրաքանչյուր փոփոխություն մի փոքր նվազեցնում է սկանավորման հուսալիությունը։
Լուսանկարը աղմուկի ներսում
Մի մոտեցում, որը ցուցադրված է Թեյլորի հիշատակած գրառման մեջ (հեղինակ՝ Դեյվ Ռիչեսոն), մոդուլների փոքրացումն է. յուրաքանչյուր պիքսել բաժանվում է 3×3 ցանցի, կոդավորված բիթը պահվում է մեջտեղի վանդակում, իսկ մյուս ութ վանդակները տրվում են լուսանկարին։ Արդյունքում ստացվում է ցածր լուծաչափի միաբիթ պատկեր՝ ծածկված «աղ ու պղպեղ» աղմուկով, որովհետև ինը պիքսելից մեկը միևնույն է տվյալներ է կրում։
Դիթերինգ և սխալի տարածում
Կիսաերանգները սովորաբար ստացվում են դիթերինգով — օրինակ՝ Բայերի նախշով, որը միջանկյալ երանգները ձևացնում է սև ու սպիտակ ձիաստակավոր ֆոնի օգնությամբ։ Սխալի տարածումը գնում է ավելի հեռու. երբ պիքսելը համեմատվում է շեմի հետ, առաջացած սխալը բաշխվում է դեռևս չորոշված հարևան պիքսելների վրա, այնպես որ յուրաքանչյուր հատված միջինում ավելի մոտ է իր իրական պայծառությանը, քան սովորական դիթերինգի դեպքում, իսկ պակաս կանոնավոր հյուսվածքը աչքի համար ավելի հաճելի է։ Թեյլորի օրինակը Միքելանջելոյի «Դավիդի» 147×147 միաբիթ պատկերն է՝ Ֆլոյդ-Շտայնբերգի ալգորիթմով։
Որպեսզի տվյալների մոդուլները չշողան, նա տարածումը կատարում է երկու անգամ։ Առաջին անցումով մոդուլները ստանում են պարտադիր գույները, և առաջացած սխալը տարածվում է շրջակա ութ պիքսելների վրա — մուգ հատվածում սխալը կարող է հասնել 95%-ի, երբ պիքսելը պետք է լինի մաքուր սպիտակ — իսկ երկրորդ անցումը ընթանում է սովորական ձևով։ Ըստ Թեյլորի, հենց այդ առաջին սխալի քողարկումն է պատկերն ընթեռնելի դարձնում։
Գինը՝ սկանավորվելիությունը
Կա փոխզիջում արտաքին տեսքի և հուսալիության միջև։ Կոդը, որը նոթբուքի էկրանից ձեր հեռախոսով սկանավորվում է, կարող է չկարդալ ուրիշի հեռախոսով վատ լույսի տակ տպված թղթից։ Գեներատորը նաև փոքրիկ պատկերներ է ստեղծում առանց լուսանցքի, մինչդեռ սկաներներին անհրաժեշտ է հանգիստ գոտի. բրաուզերները խոշորացված պատկերները մշուշոտում են, եթե CSS-ում image-rendering սահմանված չէ։ Լուսանցքի գույնը պետք է համապատասխանի որոնողական նախշերի ֆոնին — սովորաբար սպիտակ, սակայն շրջված QR կոդերին պետք է սև։
SiTech — AI-ով հզորացված վեբ մշակում
Ստեղծում ենք արագ ու ժամանակակից կայքեր և AI-ը ներդնում իրական բիզնես գործընթացներում։ Ունե՞ք նախագիծ կամ հարց։ Ուրախ կլինենք օգնել։