Détection du contour d'une region de pixels

Détection du contour d'une region de pixels - Algo - Programmation

Marsh Posté le 12-02-2006 à 17:23:45    

Bonjour,
 
Dans le cadre d'un projet je doit réaliser une vectorisation de region composé d'un ensemble de pixels.
 
J'ai donc une image composé d'un certain nombre de pixels et ces pixels sont classés dans des régions labélisées.
 
Ensuite je vais choisir une région, je vais chercher à détecter les pixels qui composent sa bordure. Puis je vais simplifier ce contour en ne choisissant que les points pertinant qui représenterons mon vecteur.
 
J'ai déja fais pas mal de recherche, j'ai lu des publis intéressantes, je poste ici pour avoir votre avis, si quelqu'un à déja a eu à faire avec ce type de traitement par exemple..
 
En ce moment je cherche comment trouver efficacement les pixels du contour d'une région, j'ai mis quelques idées sur papier mais j'ai des solutions assez "lourdes" et comme j'aimerai être performant et que j'ai pas non plus envie de réinverter la roue, si quelqu'un a des pistes sur un algo de détection de contour d'un ensemble de pixels..
 
Voila
 
Merci


Message édité par EpoK le 11-03-2006 à 10:59:05
Reply

Marsh Posté le 12-02-2006 à 17:23:45   

Reply

Marsh Posté le 12-02-2006 à 17:48:52    

Salut,
 
Tu peux aller voir sur http://homepages.inf.ed.ac.uk/rbf/ [...] node3.html  à la pseudo-rubrique "Region filling" (figure 8) et tu reviens si tu comprends pas. :)

Reply

Marsh Posté le 13-02-2006 à 18:24:09    

Salut,
 
J'ai déja fait un travail dans ce genre mais je n'ai plus l'algo donc je n'ai pas testé ce que je te mets:
 
Tu maintiens une liste de tes régions dont tu as déja le contour (au départ, elle est vide).
Tu stocke une direction (par exemple avec un codage de Freeman) que tu initialise comme allant à droite (sens de lecture de l'image) -> curDir
 
Tu commences à parcourir ton image de haut en bas et de gauche à droite.
Dès que tu arrive sur une région dont tu n'as pas le contour et qui n'est pas le fond:
     Tu stocke la position à laquelle tu est -> c'est un début de contour
     Tu regarde le pixel dans la direction curDir:
          s'il il ne fait pas partie du contour (label !=) tu fait "tourner" curDir dans le sens des aiguilles d'une montre (90° si contour 4 connexités, 45° si contour 8 connexités, avec  freeman ca revient à incrémenter curDir) et tu regardes le pixel dans la nouvelle direction (attention si le point est isolé à t'arreter)
          s'il fait partie du contour, tu l'ajoute au contour et tu te "déplace" dessus.
Tu continues a te déplacer sur le contour jusqu'a ce que tu soit retourné sur ton point de départ.
 
Une fois le contour lu en entier, tu ajoute son label à la liste de ceux déja traités et tu reprend le balayage normal de l'image jusqu'au suivant.
 
REM: il y aura probablement un soucis si tu as des régions "percées" (donc 2 contours sur la même régions)
 
Après reste la vectorisation ... (si ca ca marche  :pt1cable: )

Reply

Marsh Posté le 13-02-2006 à 19:27:06    

t'as shen-castan, pour faire ça...tu dois pouvoir trouver des papiers, voire des implémentations.


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 11-03-2006 à 10:57:58    

skeye a écrit :

t'as shen-castan, pour faire ça...tu dois pouvoir trouver des papiers, voire des implémentations.


 
 
vui mais je trouve pas :(

Reply

Marsh Posté le 21-03-2006 à 17:39:04    

...et l'algo de croissance de région pour la segmentation en région homogène de l'image, t'en penses quoi ? [:petrus75] Tu pourras facilement idenditifier les contours comme ca.


Message édité par Giz le 21-03-2006 à 17:39:40
Reply

Marsh Posté le 29-05-2006 à 22:22:23    

'alut,
 
pour une detection de contour de regions je vois deux grandes voies de recherches :
convolution : un brave sobel devrait suffir, pas la peine de prendre un shen ou un canny...pas la peine de prendre une masse non plus  :pt1cable:, puis un seuillage (surtout si tu connait l'etiquette de tes regions
morpho : une brave erosion, puis soustraction entre l'image resultat et la source.
 
apres pour l'etape de simplification, là, tu peux t'amuser...codage de freeman...vectoriel...approximation par bezier etc etc...
 
si le codage de gonfle, jette un oeil du coté de la communauté http://www.intel.com/technology/co [...] /index.htm
 
 
@pluche  :hello:  

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed