Bonjour,

Je travaille sur une image binaire contenant le contour d un objet. les contours ont été obtenus par l algorithme de Canny.

Je définis un point départ et un point d arrivée sur ce contour. Mon but est de parcourir le contour du point de départ au point d arrivée, dans un sens donné (si le contour est fermé, on peut aller du départ a l arrivée dans le sens horaire ou antihoraire). Je souhaite stocker les positions des points parcourus, dans l ordre.

La méthode que j utilise est la suivante :

- On commence au point de départ.
- On regarde les 8 voisins du point courant, dans un certain ordre selon le sens de parcours désiré. On recherche les voisins blancs (valant 1).
- Le premier voisin rencontré sera le pixel courant de l itération suivante. Lors du changement de pixel, j efface l ancien pixel courant pour ne pas retourner dessus et ainsi boucles à infini.
- On s arête quand le pixel courant est le pixel d arrivée

Je rencontre plusieurs problèmes :

- Mon contour peut contenir des "trous" et dans ce cas on ne trouve plus de voisins blanc, on est obligé de s arêter. Une solution pas terrible consiste a relancer la recherche dans un voisinage plus grand.
- Dans certains cas, le parcours ne se fait pas dans le bon sens (certaines configurations du point de départ). J obtiens alors les points que je ne voulais pas obtenir !

J espère avoir été relativement clair dans mes explications

Existe il un algorithme classique permettant de pallier ces problèmes ? Ce problème me semble loin d être simple !

Merci beaucoup pour votre aide