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

En infographie et en traitement d'images, un code en 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 soit décrire comment tracer le contour de l’objet par rapport à l’image dans laquelle il se trouve, soit constituer un ensemble de directions relatives à l’emplacement du contour où l’algorithme a commencé, en fournissant essentiellement peut être suivi pour redessiner l'objet. Ces codes peuvent être normalisés selon 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 soit plus communément utilisé dans des programmes de reconnaissance optique de caractères (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 localisé, généralement en déplaçant pixel par pixel à travers une image matricielle. Une fois localisée, la position est enregistrée et les contours environnants sont détectés. Selon que l'algorithme de détection se déplace dans le sens horaire ou antihoraire, l'emplacement actuel est déplacé dans un sens ou dans l'autre le long du bord jusqu'à ce qu'il revienne à la position d'origine.

Chaque fois que la position actuelle est déplacée, un numéro 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é à gauche, le code numérique de 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 à partir d'un point de départ arbitraire et qu'un pixel est placé à chaque étape, le contour de l'objet sera redessiné.

Une fois que la chaîne de nombres qui compose le code est complétée, plusieurs algorithmes différents peuvent lui être appliqués pour faciliter les comparaisons avec d'autres séquences de code de chaîne. Tout d'abord, le nombre est normalisé en faisant tourner le nombre de départ jusqu'à ce que la valeur entière la plus basse soit déterminée. De cette manière, deux objets ayant le même contour peuvent être comparés, quel que soit le début de l'encodage sur chaque objet.

Il existe d'autres versions plus complexes de l'algorithme de code en chaîne. Celles-ci incluent le codage basé sur les vecteurs dans lequel le contour d'un objet est décrit par une séquence de coordonnées reliées par des lignes, bien que cette méthode puisse générer des pertes lorsqu'elle est utilisée sur des contours finement détaillés. Il existe également une version de l'algorithme qui utilise le codage de longueur d'exécution (RLE) pour compresser davantage les codes d'objets extrêmement volumineux ou complexes, afin de pouvoir les stocker de manière plus efficace.

DANS D'AUTRES LANGUES

Cet article vous a‑t‑il été utile ? Merci pour les commentaires Merci pour les commentaires

Comment pouvons nous aider? Comment pouvons nous aider?