Skip to main content

Qu'est-ce qu'un code de chaîne?

Dans l'infographie et le traitement d'image, un code de chaîne est un algorithme utilisé pour coder les contours d'un objet dans une image en noir et blanc ou monochrome.La séquence de codes résultante peut décrire comment dessiner le contour de l'objet par rapport à l'image dans laquelle il est situé, soit il peut être une collection de directions par rapport à l'emplacement sur le contour où l'algorithme a commencé, fournissant essentiellement des étapes quipeut être suivi pour redessiner l'objet.Ces codes peuvent être normalisés en fonction d'une formule, puis comparés à un autre code de chaîne pour déterminer si deux objets sont identiques.Un code de chaîne peut être utilisé pour isoler des objets dans un programme de vision par ordinateur ou une segmentation d'image dans le traitement d'image, bien qu'il puisse être plus souvent utilisé dans les programmes de reconnaissance de caractères optiques (OCR).

Bien qu'il existe plusieurs algorithmes établis pour un code de chaîne,Le concept de base est le même dans chacun.Tout d'abord, le bord d'un objet est situé, généralement en déplaçant le pixel par pixel à travers une image raster.Une fois situés, la position est enregistrée et les bords environnants sont détectés.Selon que l'algorithme de détection se déplacera dans le sens horaire ou antihoraire, l'emplacement actuel est déplacé dans un sens ou un autre le long du bord jusqu'à ce qu'il revienne à la position d'origine.

Chaque fois que la position actuelle se déplace, un nombre est enregistré dans le code de la chaîne.Ce nombre indique généralement la direction qui a été déplacée le long du bord de l'objet.Par exemple, si un algorithme de code de chaîne suit un bord droit de droite à gauche, chaque fois que le bord est tracé vers la gauche, le code numérique pour la gauche est ajouté à la fin du code.Le code résultant est une chaîne de nombres dans laquelle, si la séquence est suivie d'un point de départ arbitraire et d'un pixel placé à chaque étape, le contour de l'objet serait redessiné.

Une fois la chaîne de nombres qui composent le codeest terminé, plusieurs algorithmes différents peuvent y être appliqués pour aider à faire des comparaisons avec d'autres séquences de code de chaîne.Premièrement, le nombre est normalisé en tournant le nombre de démarrage jusqu'à ce que la valeur entière la plus basse soit déterminée.De cette façon, deux objets qui ont le même contour peuvent être comparés, peu importe où sur chaque objet, le codage a commencé.

D'autres versions plus complexes de l'algorithme de code de chaîne existent.Ceux-ci incluent le codage à base de vecteur dans lequel le contour d'un objet est décrit par une séquence de coordonnées connectées par des lignes, bien que cette méthode puisse être perdue lorsqu'elle est utilisée sur des contours finement détaillés.Une version de l'algorithme existe également qui utilise le codage de longueur de course (RLE) pour compresser davantage les codes pour des objets exceptionnellement grands ou complexes afin qu'ils puissent être stockés de manière plus efficace.