Pattern di rilevamento: perché ogni codice QR ha dei quadrati negli angoli

dal team KoloQRBasi

Un codice QR a moduli tondi su un adesivo bianco arrotondato, su sfondo blu, con i tre pattern di rilevamento disegnati come anelli verdi negli angoli in alto a sinistra, in alto a destra e in basso a sinistra, mentre il quarto angolo porta solo moduli di dati, sopra un'etichetta arrotondata azzurra con la scritta "Squares in the Corners".

Un pattern di rilevamento è uno dei tre quadrati concentrici negli angoli di un codice QR che un lettore usa per individuare il simbolo e capirne la rotazione. Ognuno misura sette moduli di lato, stanno negli angoli in alto a sinistra, in alto a destra e in basso a sinistra, e il quarto angolo resta vuoto di proposito: quell'asimmetria è ciò che dice al decodificatore da che parte sta il verso del codice. Non sono un ornamento né uno spazio per un logo: un codice QR con un angolo coperto di solito è un codice QR che nessun lettore arriva nemmeno a segnalare.

Punti chiave

  • Un pattern di rilevamento è uno dei tre quadrati concentrici negli angoli di un codice QR che un lettore usa per individuare il simbolo e capirne la rotazione. Ognuno misura 7 × 7 moduli, con un separatore chiaro di un modulo sui lati interni.
  • Sono tre e non quattro perché il simbolo resti asimmetrico. Tre angoli definiscono un quadrato, e il quarto angolo vuoto dice al decodificatore da che parte sta il verso del codice, con qualsiasi rotazione.
  • Una linea di scansione che attraversa un pattern di rilevamento passando per il centro produce tratti scuri e chiari in rapporto 1:1:3:1:1, e quel rapporto è lo stesso da ogni direzione e a qualsiasi dimensione di stampa.
  • Coprire un pattern di rilevamento non equivale a danneggiare dei dati. La correzione degli errori ripara l'area dei dati; un pattern di rilevamento non lo ripara niente, perché il rilevamento avviene prima che la decodifica cominci.
  • In un codice QR di versione 1, 233 dei 441 moduli - il 52,8% - sono struttura e non dati. Alla versione 40 quella quota è del 5,4%, ed è proprio per questo che i codici piccoli contengono così poco.

Che cos'è un pattern di rilevamento in un codice QR?

Un pattern di rilevamento è uno dei tre quadrati concentrici negli angoli di un codice QR che un lettore usa per individuare il simbolo e capirne la rotazione. Ogni pattern di rilevamento misura 7 × 7 moduli: un quadrato scuro pieno di 3 × 3 al centro, un anello chiaro di un modulo attorno, e un anello scuro di un modulo attorno a quello.

Sui lati interni di ogni pattern di rilevamento corre un separatore: il bordo chiaro largo un modulo disegnato tra il pattern e l'area dei dati, perché il bordo esterno del pattern resti misurabile. Pattern e separatore occupano un blocco di 8 × 8 in ciascuno dei tre angoli, cioè 192 moduli di qualunque codice QR mai generato, a qualsiasi versione del simbolo e qualunque cosa dica il codice.

Il lavoro di quei 192 moduli è il rilevamento, non la decodifica. Prima di leggere un solo carattere, un lettore deve rispondere a tre domande sull'immagine della fotocamera: c'è un codice QR in questa foto, dove sono i suoi bordi, e da che parte sta il verso. I pattern di rilevamento rispondono a tutte e tre, e lo fanno a partire da una fotografia scattata di sbieco, con poca luce, di un codice che la fotocamera non ha mai visto.

Un primo piano di un codice QR in verde, con uno dei tre pattern di rilevamento messo in evidenza in quasi nero nell'angolo in alto a destra mentre il resto del simbolo resta attenuato, e sopra una guida di misura che copre la larghezza del pattern con sette punti tra due linee, sotto un'etichetta bianca con la scritta "7 modules".
Un pattern di rilevamento misura sette moduli per lato a ogni versione del simbolo, dalla 1 alla 40. Cambia solo la distanza fra i tre, perché il simbolo cresce attorno a loro.

Perché tre angoli e non quattro

Tre pattern di rilevamento rendono il simbolo asimmetrico, ed è l'asimmetria a codificare l'orientamento. Tre angoli bastano a definire un quadrato: due danno al decodificatore un lato e la sua lunghezza, il terzo dà la perpendicolare, e il quarto angolo a quel punto è già noto. Metterci un altro pattern di rilevamento non aggiungerebbe nulla ed eliminerebbe l'unico indizio che dice da che parte sta il verso del codice.

Per questo un codice QR si può scansionare capovolto, di lato o riflesso nella vetrina di un negozio, e si legge comunque. Il decodificatore trova tre quadrati, capisce quale sta nell'angolo compreso tra gli altri due - quello è l'angolo in alto a sinistra - e riorienta l'intera griglia da lì. Un simbolo con quattro quadrati si decodificherebbe in quattro modi diversi, senza alcun criterio per scegliere tra loro.

L'angolo vuoto non resta vuoto a lungo. Dalla versione 2 in poi l'area in basso a destra porta invece un pattern di allineamento, che è un quadrato più piccolo di 5 × 5 e fa un lavoro diverso, descritto più avanti. Chi nota che un codice QR grande ha un quarto quadrato, più piccolo, nell'angolo sta guardando un pattern di allineamento e non un pattern di rilevamento rimpicciolito.

La stessa logica spiega perché il Micro QR Code ha un solo pattern di rilevamento. È un simbolo molto più piccolo, mai oltre i 17 × 17 moduli, e tre blocchi di 8 × 8 ne consumerebbero quasi tutto. In cambio il simbolo va presentato alla fotocamera in modo più frontale, cosa accettabile per marcare pezzi piccoli e non accettabile per un codice su un manifesto.

Il rapporto 1:1:3:1:1 che rende individuabile un codice QR

Una linea di scansione che attraversa un pattern di rilevamento passando per il centro produce tratti scuri e chiari in rapporto 1:1:3:1:1, ed è proprio quel rapporto che un decodificatore cerca. Non cerca quadrati. Riduce l'immagine della fotocamera in bianco e nero, poi percorre ogni riga di pixel misurando quanto dura ogni tratto di un unico colore, e segnala ogni punto in cui cinque tratti consecutivi rispettano quella proporzione.

Il rapporto è scelto perché sopravvive a tutto ciò che succede a un codice tra il generatore e la fotocamera:

  • La scala. Un rapporto non ha unità di misura. Lo stesso 1:1:3:1:1 compare sia che un modulo sia largo tre pixel sia trenta, quindi il decodificatore non ha bisogno di conoscere in anticipo la dimensione di stampa né la distanza della fotocamera.
  • La rotazione. Il pattern è concentrico, quindi una linea passante per il centro dà gli stessi tratti a qualsiasi angolo. Ecco perché un codice QR non ha un alto, ed ecco perché ruotarlo in un impaginato è sicuro.
  • Le viste parziali. Le righe vicine al bordo superiore e inferiore del pattern danno rapporti diversi, quindi scartare i falsi positivi costa poco. Al decodificatore resta solo da confermare il rapporto anche in una colonna, nello stesso punto.
  • Gli stampati normali. Il nucleo 1:3:1 è raro nel materiale stampato. Un tratto scuro largo tre volte i tratti che ha ai lati, su entrambi gli assi e nello stesso punto, è abbastanza raro perché fotografie e tipografia non lo facciano scattare spesso.

Confermati tre centri candidati, il resto è rapido: il decodificatore misura la distanza tra loro per stimare la dimensione del modulo, usa i pattern di sincronizzazione per agganciare la griglia al simbolo, e legge le informazioni di formato accanto ai pattern di rilevamento per conoscere il livello di correzione degli errori e la maschera, prima di toccare un solo modulo di dati.

Questa sequenza spiega perché un codice con un angolo danneggiato si comporta in modo così diverso da uno con il centro danneggiato. Un graffio nell'area dei dati è aritmetica che il decodificatore può disfare. Un adesivo su un pattern di rilevamento elimina ciò che dà il via al processo, e il telefono semplicemente non mostra nulla - vedi perché un codice QR non si scansiona per distinguere questo guasto dagli altri.

Cos'altro in un codice QR è struttura e non dati

Cinque cose in un codice QR le fissa lo standard anziché il contenuto: i pattern di rilevamento con i loro separatori, i pattern di sincronizzazione, i pattern di allineamento, le informazioni di formato e - dalla versione 7 in su - le informazioni di versione. Insieme si chiamano pattern funzionali, e occupano le stesse posizioni in ogni codice di una data versione.

ParteDimensioneDove si trovaCosa fa
Pattern di rilevamento7 × 7 moduli, tre in tuttoAngoli in alto a sinistra, in alto a destra e in basso a sinistraIndividua il simbolo e ne stabilisce la rotazione
Separatore1 modulo di larghezza, attorno a ogni patternTra ogni pattern di rilevamento e l'area dei datiMantiene misurabile il bordo esterno del pattern rispetto ai moduli vicini
Pattern di sincronizzazioneUna riga e una colonna di moduli alternatiRiga 6 e colonna 6, tra i pattern di rilevamentoDice al decodificatore dove cade la griglia, così può contare le celle
Pattern di allineamento5 × 5 moduli, dalla versione 2 in poiA coordinate fisse distribuite nel simboloCorregge la distorsione prospettica su un codice di sbieco o curvo
Informazioni di formato31 moduli, in due copieAccanto ai pattern di rilevamentoRegistra il livello di correzione degli errori e il pattern di maschera
Informazioni di versione36 moduli, dalla versione 7 in poiAccanto ai pattern in alto a destra e in basso a sinistraDichiara la versione del simbolo così il decodificatore non deve dedurla
Posizioni e dimensioni vengono dallo standard ISO/IEC 18004. Nessuna di queste aree porta qualcosa del tuo URL, e nessuna è protetta dalla correzione degli errori che protegge i dati.

La conseguenza pratica va detta senza giri di parole: un codice QR non è una griglia di dati con qualche decorazione sopra. È una griglia di struttura con i dati versati negli spazi rimasti, e nei codici piccoli la struttura è la maggior parte del disegno.

Quanta parte di un codice QR non sono i tuoi dati

In un codice QR di versione 1, 233 dei 441 moduli - il 52,8% - sono pattern funzionali e informazioni di formato anziché dati. Più della metà del codice QR più piccolo se ne va nel descrivere sé stesso. La quota cala man mano che il simbolo cresce, perché i pattern funzionali crescono appena mentre l'area dei dati cresce con il quadrato del lato.

VersioneModuli per latoModuli totaliModuli di strutturaQuota di struttura
12144123352,8%
22562526642,6%
32984127432,6%
4331.08928225,9%
6411.68129817,7%
7452.02545722,6%
10573.24948114,8%
15775.92968611,6%
20979.4097267,7%
4017731.3291.6815,4%
Contato dalle posizioni dei pattern funzionali nello standard ISO/IEC 18004 e verificato contro il numero totale di parole di codice di ogni versione, che si ricava per altra via. I due conteggi coincidono a ogni versione della tabella.

Scorrendo l'ultima colonna, una riga rompe l'andamento. La versione 7 dedica alla struttura una quota maggiore della versione 6 - 22,6% contro 17,7% - perché alla versione 7 arrivano due cose insieme: compaiono le informazioni di versione, che costano 36 moduli, e il numero di pattern di allineamento salta da uno a sei. Da lì in poi la quota riprende a scendere e non risale più.

Questa tabella è la vera risposta a una domanda che di solito si pone in altro modo. Un URL corto in un codice di versione 2 e uno lungo in un codice di versione 10 non differiscono di un fattore dieci in dati, pur essendo entrambi codici QR di complessità visiva simile: il piccolo sta spendendo il 42,6% di sé stesso per essere individuabile. La capacità di un codice QR affronta il lato dati di questa aritmetica versione per versione.

Pattern di allineamento: il quarto quadrato che si nota

Un pattern di allineamento è un quadrato di cinque moduli che permette al decodificatore di correggere la distorsione prospettica quando un codice QR viene fotografato di sbieco o stampato su una superficie curva. È un blocco di 5 × 5 - un anello scuro, un anello chiaro all'interno e un singolo modulo scuro al centro - e compare dalla versione 2 in poi.

Il loro numero lo fissa la versione, non il contenuto:

VersioneModuli per latoPattern di allineamento
121Nessuno
Da 2 a 6Da 25 a 411
Da 7 a 13Da 45 a 696
Da 14 a 20Da 73 a 9713
Da 21 a 27Da 101 a 12522
Da 28 a 34Da 129 a 15333
Da 35 a 40Da 157 a 17746
I pattern di allineamento stanno su una griglia il cui passo è fissato dallo standard per ogni versione; le tre posizioni che andrebbero a sovrapporsi a un pattern di rilevamento vengono omesse, ed è per questo che i conteggi sono 6, 13, 22 e non quadrati perfetti.

La loro importanza cresce con il codice. Su un simbolo di versione 2 il decodificatore può tracciare la griglia con i soli tre pattern di rilevamento, perché 25 moduli di deriva sono pochi. Su un simbolo di versione 25 la stessa stima deve reggere lungo 117 celle, e un piccolo errore angolare agli angoli si accumula fino a diventare un modulo intero di scostamento sul lato opposto. I pattern di allineamento sono punti di riferimento dentro il simbolo che permettono al decodificatore di riadattare la griglia a tratti, invece di affidare tutto a una singola stima.

È anche la ragione pratica per cui un codice grande su una superficie curva - una bottiglia, una tazza, una bobina di cavo - si legge ancora. Non perché la curvatura sia poca: perché il decodificatore ha punti di riferimento interni e riadatta la griglia tra di essi. Un codice curvo con un pattern di allineamento coperto perde questo, e inizia a fallire esattamente alle angolazioni con cui una persona tiene il telefono in modo naturale.

Pattern di sincronizzazione e informazioni di formato

Un pattern di sincronizzazione è l'unica riga e l'unica colonna di moduli alternati scuri e chiari che dice al decodificatore dove cade la griglia dei moduli. Uno corre lungo la riga 6 tra i pattern in alto a sinistra e in alto a destra, l'altro scende lungo la colonna 6 tra quello in alto a sinistra e quello in basso a sinistra, ed entrambi iniziano e finiscono sempre con un modulo scuro.

Il loro lavoro è contare. Trovati gli angoli del simbolo, il decodificatore conosce il confine esterno ma non quante celle ci sono dentro: un codice da 25 moduli e uno da 29 sono identici visti da fuori. Percorrere il tratto alternato della riga 6 dà direttamente il passo della griglia, e questo la fissa per tutto il simbolo.

Le informazioni di formato sono la striscia di moduli accanto ai pattern di rilevamento che registra il livello di correzione degli errori e il pattern di maschera del simbolo. Occupano 31 moduli, sono protette da un proprio codice correttore BCH e sono scritte due volte in punti diversi, così un simbolo con una copia distrutta continua a dichiarare correttamente il proprio livello.

Questa ridondanza è un'asimmetria voluta nel progetto, e vale la pena conoscerla quando si valuta un codice danneggiato. Le informazioni di formato sono l'unica parte della struttura con una protezione propria. I pattern di rilevamento, di sincronizzazione e di allineamento non ne hanno alcuna - non per dimenticanza, ma perché non ha senso proteggere dati che vanno letti prima che qualsiasi protezione possa essere applicata.

Le informazioni di versione compaiono dalla versione 7 in poi: 36 moduli, in due copie, accanto ai pattern di rilevamento in alto a destra e in basso a sinistra, che dichiarano esplicitamente la versione del simbolo. Sotto la versione 7 il decodificatore deduce la versione contando i moduli, cosa abbastanza affidabile su un simbolo da 21 a 41 moduli e meno affidabile su uno da 177.

Cosa succede quando un pattern di rilevamento è coperto

Un codice QR con un pattern di rilevamento coperto di solito non si scansiona affatto, e il guasto è silenzioso, non lento. Non c'è lettura parziale né messaggio d'errore: il decodificatore non conclude mai che nell'inquadratura ci sia un simbolo, quindi il telefono si comporta esattamente come se fosse puntato su un muro vuoto.

La cosa più utile da sapere su questo guasto è che la correzione degli errori non può farci nulla. Il recupero Reed-Solomon ripara parole di codice nell'area dei dati, e interviene dopo che il simbolo è stato individuato, la versione determinata e la maschera rimossa. Un pattern di rilevamento serve proprio ad arrivare fin lì, quindi un danno in quel punto elimina il processo invece di aggiungergli errori. Alzare il livello da M ad H non fa altro che rimpicciolire ogni modulo - il meccanismo è in i livelli di correzione degli errori L, M, Q e H.

I modi in cui un angolo finisce coperto, all'incirca in ordine di frequenza con cui arrivano in stampa:

  • Un logo messo in un angolo invece che al centro. Il centro di un codice QR è dati, e i dati li protegge la correzione degli errori. Gli angoli sono struttura, e la struttura non la protegge nulla. Questa singola decisione è la differenza tra un codice che si legge e uno che non si legge.
  • Un adesivo, un'etichetta del prezzo o un sigillo sopra il codice. Frequente sulle confezioni e sui menu che vengono rietichettati. Se deve sovrapporsi, che stia lontano da tutti e tre gli angoli.
  • Una cornice o un badge che invade l'anello esterno. L'anello scuro esterno del pattern è spesso un modulo, e una cornice che lo mangia cambia le lunghezze dei tratti che il decodificatore sta misurando.
  • Un taglio o una fustella che attraversa un angolo. Un adesivo rotondo tagliato a filo di un simbolo quadrato toglie margine prima di tutto agli angoli - dove stanno tutti e tre i pattern.
  • Uno stile troppo marcato sui moduli d'angolo. Le forme d'angolo che arrotondano molto il pattern, o che riempiono di colore l'anello chiaro, alterano il rapporto 1:1:3:1:1 da cui dipende il rilevamento.
  • Una piega, un dorso o una curvatura su un angolo. La piega ombreggia il pattern e impedisce alle due metà di stare sullo stesso piano, cosa che disturba la misura del rapporto più della stessa piega altrove.

La prova è più rapida della teoria. Copri il centro di un codice stampato con il pollice e la maggior parte continua a scansionarsi; copri un angolo qualsiasi e quasi nessuno lo fa. Quella differenza è tutta questa pagina in un solo esperimento.

Come personalizzare gli angoli di un codice QR senza romperlo

Le forme d'angolo personalizzate sono sicure quando conservano il rapporto 1:1:3:1:1 lungo ogni linea passante per il centro, e non lo sono quando lo alterano. È tutta qui la regola, e spiega perché alcuni codici personalizzati si leggono perfettamente e altri falliscono sulla metà dei telefoni che ci provano.

Cosa questo consente e cosa no:

  • Arrotondare gli angoli dell'anello esterno del pattern. Sicuro nella maggior parte dei decodificatori, perché una linea passante per il centro attraversa comunque gli stessi tratti. L'arrotondamento toglie inchiostro agli angoli propri del pattern, che la linea centrale non tocca mai.
  • Un colore diverso per i pattern di rilevamento. Sicuro finché le parti scure restano scure rispetto a quelle chiare con lo stesso contrasto che serve al resto del codice. Il decodificatore lavora in bianco e nero dopo la binarizzazione, quindi un pattern blu scuro su bianco è un pattern scuro.
  • Pattern di rilevamento circolari. Di solito leggibili, e il meno indulgente tra gli stili diffusi: un cerchio inscritto nel blocco di 7 × 7 accorcia i tratti scuri misurati fuori dal centro, quindi la tolleranza alla qualità di stampa cala.
  • Tingere l'anello chiaro invece di lasciarlo vuoto. Rischioso. L'anello chiaro centrale è uno dei cinque tratti misurati, e un mezzo tono lì può binarizzarsi come scuro sotto l'illuminazione di un negozio.
  • Fondere i pattern di rilevamento con un logo. Non sicuro. Tutto ciò che cambia la dimensione del nucleo di 3 × 3 rispetto agli anelli cambia il rapporto da cui dipende il rilevamento.
  • Togliere un pattern di rilevamento per simmetria. Mai. Certi bozzetti eliminano un angolo o ne aggiungono un quarto per equilibrio visivo; il primo è irrilevabile, il secondo è ambiguo.

KoloQR, un generatore di codici QR gratuito con codici QR circolari e di forme personalizzate, disegna i pattern di rilevamento come parte del simbolo in ogni forma che propone, così gli angoli mantengono le loro proporzioni quando cambia lo stile dei moduli. Lo stile non migliora mai le prestazioni di scansione: un codice decorato ha bisogno di angoli integri almeno quanto uno semplice, e di solito un po' di più, perché i moduli decorativi mettono meno inchiostro in ogni cella. Guarda le forme dei codici QR per il ventaglio, i codici QR rotondi per il trattamento circolare, e le forme QR personalizzate si scansionano? per quanto costa il compromesso nella pratica.

Qualunque generatore abbia prodotto il file, la verifica è la stessa e richiede un minuto: esporta il codice personalizzato, stampalo nella dimensione in cui verrà davvero usato, e scansionalo con un telefono iOS e uno Android. Le fotocamere native sono più severe delle app di scansione dedicate, e sono quelle che la gente userà.

Come leggere a occhio la struttura di un codice QR

Chiunque può identificare la versione di un simbolo, contarne la struttura e verificarne gli angoli senza software. La procedura qui sotto richiede circa cinque minuti ed è il modo più rapido di controllare un codice che ti è arrivato senza alcuna nota.

  1. Conta i moduli lungo il bordo superiore. Conta le celle lungo un lato intero del simbolo, margine escluso. Il numero è sempre 4V + 17 per la versione V, quindi 21 è la versione 1, 25 la versione 2, 33 la versione 4 e 57 la versione 10.
  2. Controlla tutti e tre gli angoli cercando un pattern di 7 × 7. In alto a sinistra, in alto a destra e in basso a sinistra. Ognuno deve mostrare un nucleo pieno di 3 × 3, un anello chiaro di un modulo ben netto e un anello scuro di un modulo ininterrotto, con un modulo di separatore libero sui lati interni.
  3. Trova i pattern di sincronizzazione. Guarda lungo la settima riga e la settima colonna a partire dall'angolo in alto a sinistra, tra i pattern di rilevamento. Dovresti vedere un tratto rigorosamente alternato che inizia e finisce scuro. Un'interruzione lì significa codice rotto.
  4. Individua i pattern di allineamento. Dalla versione 2 c'è almeno un quadrato di 5 × 5 vicino all'angolo in basso a destra. Dalla versione 7 in su sono sei o più, distribuiti regolarmente nel simbolo.
  5. Verifica che il quarto angolo non sia un pattern di rilevamento. L'angolo in basso a destra deve contenere moduli di dati, oppure un pattern di allineamento rientrato dal bordo. Un quarto quadrato di 7 × 7 significa che l'immagine non è un codice QR valido.
  6. Misura il margine prendendo un modulo come riferimento. Lo spazio libero attorno al simbolo deve essere di almeno quattro moduli per lato. Confrontalo con la larghezza di una singola cella invece che con il codice intero - vedi la zona di silenzio.
  7. Passa il file in un validatore. Il validatore di codici QR riporta la dimensione del modulo, il margine su ogni lato e il contrasto, e conferma che il simbolo si decodifica.

Due esiti di questo controllo spiegano la maggior parte dei file scadenti in circolazione: un codice ritagliato così stretto da perdere un separatore, e un codice posizionato in modo che qualcosa nell'impaginato poggi su un angolo. Entrambi si vedono in meno di un minuto, quando si sa dove guardare.

Errori frequenti con gli angoli di un codice QR

L'errore più frequente è considerare gli angoli il posto sicuro dove mettere qualcosa, ragionando che i dati stanno al centro. È esattamente il contrario: il centro lo protegge la correzione degli errori e gli angoli non li protegge nulla.

Fai cosìPerché
Metti il logo al centro del codiceIl centro è area dei dati, e la correzione degli errori è fatta per assorbire una perdita lì
Tieni tutti e tre gli angoli completamente liberi da graficaIl rilevamento usa i pattern di rilevamento e avviene prima che qualsiasi recupero sia possibile
Conserva il rapporto 1:1:3:1:1 quando personalizzi gli angoliIl decodificatore cerca il rapporto, non la forma disegnata
Prova un codice personalizzato con la fotocamera nativa di un telefonoLe fotocamere native sono più severe delle app di scansione, e sono quelle che la gente usa
Considera il codice come simbolo più quattro moduli di margineGli angoli sono il punto in cui un ritaglio stretto o una fustella tolgono per primi lo spazio libero
EvitaPerché
Mettere un logo, un badge o un adesivo su un angoloUn pattern di rilevamento coperto non è un danno da cui il codice può riprendersi, è un codice che non viene mai rilevato
Alzare il livello di correzione degli errori per proteggere gli angoliIl recupero vale solo per l'area dei dati, e il livello più alto rimpicciolisce ogni modulo
Aggiungere un quarto quadrato d'angolo per simmetria visivaL'assenza del quarto angolo è ciò che codifica l'orientamento del simbolo
Tingere l'anello chiaro all'interno di un pattern di rilevamentoQuell'anello è uno dei cinque tratti misurati, e un mezzo tono può binarizzarsi come scuro con poca luce
Dare per buono un codice personalizzato perché si è scansionato a schermoUno schermo dà luce uniforme, contrasto alto e bordi netti: le tre cose che la stampa non dà

Crea il tuo codice QR

Gratis, senza account e senza filigrana. Scegli una forma, aggiungi un logo, controlla il contrasto ed esporta in SVG, PDF, EPS o PNG: un codice statico senza abbonamento dietro.

Genera codice QR

Questions? Answered

Si chiamano pattern di rilevamento. Ognuno è un quadrato concentrico di 7 × 7 moduli negli angoli in alto a sinistra, in alto a destra e in basso a sinistra, e un lettore li usa per individuare il simbolo nell'immagine della fotocamera e capirne la rotazione prima di decodificare qualsiasi cosa. Lo standard QR, ISO/IEC 18004, li chiama pattern di rilevamento di posizione.

Tre angoli definiscono un quadrato e allo stesso tempo lasciano il simbolo asimmetrico, e quell'asimmetria dice al decodificatore da che parte sta il verso del codice. Un quarto quadrato renderebbe identici tutti e quattro gli orientamenti. È anche il motivo per cui un codice QR si legge capovolto, di lato e a qualsiasi angolo intermedio.

No. Gli angoli ospitano i pattern di rilevamento, che a un lettore servono anche solo per rilevare il codice, e la correzione degli errori non li protegge. Metti il logo al centro, dove c'è l'area dei dati e il recupero si applica. Un logo centrale che copre fino a circa il 20% dell'area è recuperabile in modo affidabile al livello H.

È un pattern di allineamento: un quadrato di 5 × 5 moduli che permette al decodificatore di correggere la distorsione prospettica quando il codice viene fotografato di sbieco o stampato su una superficie curva. Compare dalla versione 2 in poi. Dalla versione 7 in su sono sei o più, distribuiti nel simbolo.

Perché il rilevamento avviene prima della decodifica. Il lettore cerca nell'immagine tre pattern di rilevamento con un rapporto 1:1:3:1:1 di tratti scuri e chiari, e se ne manca uno non conclude mai che nell'inquadratura ci sia un codice. Non viene decodificato nulla, quindi non c'è nulla che la correzione degli errori possa riparare.

Di solito sì, se il rapporto 1:1:3:1:1 lungo una linea passante per il centro di ogni pattern viene conservato. Arrotondare l'anello esterno è in genere sicuro; tingere l'anello chiaro, o ridimensionare il nucleo di 3 × 3 rispetto agli anelli, non lo è. Stampa il codice personalizzato a dimensione finale e provalo con la fotocamera nativa di un telefono prima di decidere.

Meno di quanto ci si aspetti nei codici piccoli. Un simbolo di versione 1 spende 233 dei suoi 441 moduli - il 52,8% - in struttura, e ne lascia 208 a dati e correzione degli errori insieme. Alla versione 10 la quota di struttura è il 14,8%, e alla versione 40 il 5,4%. Ecco perché la capacità sale così ripidamente con la dimensione.

È l'unica riga e l'unica colonna di moduli alternati scuri e chiari che corrono tra i pattern di rilevamento, lungo la riga 6 e la colonna 6. Dicono al decodificatore dove cade la griglia dei moduli, così può contare le celle con precisione dopo aver individuato il confine del simbolo. Iniziano e finiscono sempre con un modulo scuro.

Sì. Tutti e tre misurano 7 × 7 moduli con la stessa struttura concentrica, a ogni versione del simbolo dalla 1 alla 40 e qualunque cosa il codice contenga. Cambia solo la loro spaziatura, perché il simbolo cresce attorno a loro. Il Micro QR Code è l'eccezione: è un tipo di simbolo diverso, con un unico pattern di rilevamento.

Perché KoloQR?

  • Crea codici QR per siti web, menù, Wi-Fi, PDF e biglietti da visita
  • Personalizza colori, loghi e forme uniche
  • Scarica file PNG e SVG di alta qualità
  • Pensato sia per la stampa che per il digitale
Genera codice QR
Un semplice codice QR nero accanto allo stesso codice ridisegnato come un cerchio con i colori del brand