Les repères décrivent la feuille
Chaque coin contient un repère ArUco. Son identifiant enregistre le coin, la version du modèle et le jeu linguistique. Le programme vérifie les quatre identifiants ensemble, ce qui lui permet aussi de comprendre une page tournée.
Les coins extérieurs fournissent quatre points de référence. Si un repère manque ou si son motif est masqué, la grille ne peut pas être reconstruite de façon fiable. La photo doit donc montrer la page entière.
La perspective est corrigée
inktype.cc calcule une homographie à partir des quatre points. Cette transformation ramène la page photographiée en biais vers la géométrie A4 connue du modèle. Les cases retrouvent ainsi leurs positions attendues.
Une homographie corrige la perspective d’une surface plane. Un papier très ondulé, un pli profond ou une page de livre courbée ne se trouve pas sur un seul plan et peut donc déformer les caractères.
Les cases sont traitées séparément
Le modèle comporte 11 colonnes et 10 lignes. Le jeu détecté indique quelle lettre appartient à chaque case. Le programme découpe chaque zone dans la page redressée et l’analyse indépendamment.
Un seuil adaptatif sépare l’encre sombre du papier clair. Le réglage de sensibilité déplace cette limite. Une valeur élevée conserve les traits pâles, mais récupère plus facilement la texture du papier et les ombres.
Les pixels deviennent des tracés
ImageTracer suit le bord de l’encre détectée et produit des tracés fermés. Les vecteurs peuvent changer de taille sans faire apparaître de pixels. Ils forment donc chaque caractère de la police finale.
Le décalage et l’échelle changent la position des tracés. La chasse définit l’espace horizontal pris par le caractère dans le texte. Les réglages globaux touchent toute la police, tandis que les réglages locaux corrigent une seule exception.
Le navigateur construit le fichier OTF
opentype.js rassemble les tracés, les correspondances de caractères et les métriques dans une police OpenType. Le même résultat alimente l’aperçu en direct afin de vérifier les mots et les espaces avant le téléchargement.
L’analyse lourde s’exécute dans un Web Worker pour garder l’interface réactive. Les réglages restent dans le navigateur et sont retrouvés grâce au nom et à la taille du fichier. La politique de confidentialité décrit ces données plus précisément.