Le codage en chaîne (run-length coding en anglais) est une description fort utilisée en codage des contours. Elle consiste à définir un jeu de directions (cf. figure 9.1) et à suivre les points de contours de proche en proche jusqu'à revenir au point de départ. Un contour se définit alors comme une structure contenant les coordonnées du point de départ et une liste de directions à suivre.
La figure 9.2 montre des exemples de codage en chaîne en 4 et 8-connexité. Le codage en chaîne en 8-connexité fournit (x1, y1), 070675424452212. Le codage en 8-connexité est toujours plus court que le codage en 4-connexité mais il fait intervenir plus de directions distinctes.
![]() |
Un problème typique du codage en chaîne intervient lors de la présence de points de rebroussement. On remarque alors qu'un même point de contour est décrit plusieurs fois. Ce phénomène est illustré à la figure 9.3.
En général, on cherche à approcher au mieux la forme d'un contour avec un minimum de côtés. Le problème d'approximation polygonale d'un contour n'est pas trivial en tant que tel et l'on se heurterait rapidement à des temps de calcul excessif si on procède itérativement. Néanmoins, il existe des techniques satisfaisante pour le traitement d'images.
La figure 9.4 montre les étapes d'un procédé d'approximation polygonale d'un contour. On détermine tout d'abord la plus longue corde qu'il est possible de placer à l'intérieur de l'objet; les deux extrémités de cette corde correspondent à deux sommets du quadrilatère d'approximation. Pour trouver les autres sommets, on abaisse les plus longues perpendiculaires de part et d'autre de la corde. L'approximation peut être améliorée en ajoutant des sommets en abaissant les plus longues perpendiculaires sur chaque côté. La technique d'approximation consiste à ajouter des côtés jusqu'au moment où un critère d'arrêt est respecté, par exemple un écart surfacique entre la forme originale et son approximation inférieur à un certain pourcentage.
Un contour est constitué d'une série de coordonnées de type (xi, yi) mais une description curviligne conviendrait puisqu'il ne s'agit jamais que d'un objet unidimensionnel parcourant un espace de dimension plus élevée. Partant de ce principe, on peut considérer une représentation sous forme de nombres complexes.
Soit une série de N points de contours dont les coordonnées sont représentées sous forme complexe, tels que représentés à la figure 9.5.
s[n] = x[n] + jy[n] | (9.1) |
La transformée de FOURIER discrète de ce signal est
![]() ![]() ![]() ![]() |
(9.2) |
On peut approximer un contour en sélectionnant un certain nombre de descripteurs de FOURIER. La figure 9.6 illustre les approximations successives qui en découlent.
![]() |