Comment fonctionne le scan d'un code QR : de la caméra aux données

Embed This Widget

Theme


      
    

Widget powered by . Free, no account required.

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

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