Comment fonctionne le scan d'un code QR : de la caméra aux données
Le pipeline de décodage complet : capture d'image, binarisation, détection de motif de repérage, lecture de format, démasquage, correction d'erreur et extraction de données.
- Comment fonctionne le scan d'un code QR : de la caméra aux données
- Étape 1 : capture d'image et binarisation
- Étape 2 : détection du motif de repérage
- Étape 3 : correction d'orientation et de perspective
- Étape 4 : échantillonnage de la grille
- Étape 5 : lecture du format et de la version
- Étape 6 : démasquage
- Étape 7 : correction d'erreur
- Étape 8 : extraction des données
- Points clés
Comment fonctionne le scan d'un code QR : de la caméra aux données
Lorsque vous pointez votre smartphone vers un code QR, un pipeline sophistiqué transforme une image de caméra en données décodées en quelques millisecondes. Comprendre ce processus aide à expliquer pourquoi certains codes QR échouent au scan et comment concevoir des codes qui se décodent de manière fiable.
Étape 1 : capture d'image et binarisation
La caméra capture une image couleur ou en niveaux de gris. Le logiciel du scanner la convertit en image binaire (noir/blanc) à l'aide d'un seuillage adaptatif — comparant chaque pixel à son voisinage local plutôt qu'à un seuil global unique. Cela gère l'éclairage inégal, les ombres et les dégradés.
Étape 2 : détection du motif de repérage
Le scanner recherche les motifs de repérage caractéristiques — les trois grands carrés au rapport de modules 1:1:3:1:1. En balayant des lignes horizontales et verticales dans l'image, le décodeur identifie des motifs candidats et les vérifie. Trois motifs de repérage valides dans la relation géométrique correcte confirment la présence d'un code QR.
Étape 3 : correction d'orientation et de perspective
À l'aide des positions des trois motifs de repérage, le scanner détermine la rotation et la distorsion de perspective du code QR. Pour les versions plus grandes, les motifs d'alignement fournissent des points de référence supplémentaires pour corriger la déformation géométrique — particulièrement important lors du scan de codes sur des surfaces courbes.
Étape 4 : échantillonnage de la grille
Les motifs de synchronisation établissent la grille exacte des modules. Le scanner échantillonne chaque position de module pour déterminer s'il représente un bit noir (1) ou blanc (0). Cette étape est sensible à la qualité d'impression, au contraste et à la taille des modules.
Étape 5 : lecture du format et de la version
Le scanner lit l'information de format pour déterminer le niveau de correction d'erreur et le motif de masque. Pour les versions 7+, l'information de version est également extraite.
Étape 6 : démasquage
Le motif de masque identifié à l'étape 5 est combiné par XOR avec la zone de données pour annuler le masquage appliqué lors du codage. Le masquage évite les motifs problématiques qui pourraient perturber les scanners.
Étape 7 : correction d'erreur
Le décodeur applique la correction d'erreur Reed-Solomon pour détecter et réparer les mots de code corrompus. Si le nombre d'erreurs dépasse la capacité de correction du niveau EC choisi, le décodage échoue.
Étape 8 : extraction des données
Enfin, le flux de données corrigé est analysé selon les indicateurs du mode de codage. Le décodeur lit les marqueurs de mode, les nombres de caractères et les segments de données pour reconstituer la charge utile d'origine — une URL, des identifiants WiFi, une carte de contact ou tout autre contenu.
Points clés
- Le pipeline de décodage complet : capturer, binariser, repérer, orienter, échantillonner, démasquer, corriger, extraire
- Les motifs de repérage permettent la détection depuis n'importe quelle orientation
- Le seuillage adaptatif gère les conditions d'éclairage inégales
- La correction d'erreur répare les modules endommagés lors du décodage
- L'ensemble du processus s'effectue généralement en moins de 100 millisecondes