Projet BTS a finir - traitement image

cs_Hercule2000 Messages postés 4 Date d'inscription mardi 26 avril 2005 Statut Membre Dernière intervention 28 avril 2005 - 26 avril 2005 à 16:03
Arnaud16022 Messages postés 1329 Date d'inscription vendredi 15 août 2003 Statut Membre Dernière intervention 16 juin 2010 - 28 avril 2005 à 17:03
Bonjour je suis un etudiant en BTS informatique industrielle et nous avons un projet a réaliser avant fin mai.
Nous avons un bras manipulateur sur lequel se trouve une webcam. Le but est de trier des pièces rondes ou carrés. Nous récupérons donc l'image de la webcam que nous mettons au format BMP et en noir et blanc.
Mon souci est de maintenant repéré le centre des pièces et de définir si elles sont rondes ou carré.
Nous develeppons en C++ sous linux.

Dois je utiliser un tableau a deux dimensions?
Comment "définir" le centre de la pièce ( sa veut dire kil y aurai des positions) ?
Surtout comment définir la forme d'une pièce?

En attendant vos réponses

11 réponses

cs_Tidam Messages postés 124 Date d'inscription jeudi 2 janvier 2003 Statut Membre Dernière intervention 16 février 2006 2
26 avril 2005 à 19:22
une chose que tu pourrais preciser , est ce que les pieces ou le fond
sur lequel sont posées les pieces ont des couleurs particulieres ??
0
cs_Hercule2000 Messages postés 4 Date d'inscription mardi 26 avril 2005 Statut Membre Dernière intervention 28 avril 2005
27 avril 2005 à 09:52
Les pieces sont blanches posés sur un plan de travail noir.
0
cs_VinceR Messages postés 47 Date d'inscription jeudi 11 juillet 2002 Statut Membre Dernière intervention 27 avril 2005
27 avril 2005 à 10:48
Salut !

Moi j'opterais pour avoir une image référence de chaques pièces et d'établir des zones qui définissent le type de pièces.

L'utilisation d'un tableau à 2 dimensions peut être utile en effet (stockage de points, zones de références)...

Courage !


VinceR
0
Arnaud16022 Messages postés 1329 Date d'inscription vendredi 15 août 2003 Statut Membre Dernière intervention 16 juin 2010 2
28 avril 2005 à 00:45
ouah

ouais, bon courage ;)

bon le tableau a 2 dimensiosn s'impose, mais T pas plus avancé comme ca...

d'aucuns te conseilleraient de faire la dérivée de ton tableau... c'est facile et ca te donne les contours des formes.

maintenant t'es toujours pas bcp avancé... dis voir, il peut y avoir plusieurs formes en meme temps ou une seule?

en tout ca, moi je regarderais dans tout le tableau dérivé pour voir ou
ca vaut 1 ( == ou ca passe du noir au blanc sur ton image) et d'essayer
de suivre le contour... tes pieces peuvent se toucher? si oui, AIE...

poste ton projet ici qd tu l'auras terminé stp

++

ad

_______________________


Omnia vincit labor improbus
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
gnoofy120 Messages postés 17 Date d'inscription mercredi 26 janvier 2005 Statut Membre Dernière intervention 14 juin 2006
28 avril 2005 à 07:55
Salut,
Voilà la methode que j'ai utilisée pour reconnaître des formes rectangulaires dans une carte vectorisée.
Pour chaque éléments de ton image tu calcules les moments de deuxièmes ordre:
(xg,yg) centre de gravité de l'élément
Mxx = Somme ( xi - xg )²
Myy = Somme ( yi - yg )²
Mxy = Somme ( xi - xg)*(yi-yg)
Ensuite tu prends la matrice suivante
( Mxx Mxy )
( Mxy Myy )
Les deux valeurs propres de cette matrice L et l sont la largeur et la hauteur de ton rectange.
Les deux vecteurs propres sont les axes
Tu as juste à vérifier que le rectangle ainsi calculé correspond à ta figure.

Tu peux aussi appliquer la transformée de Hough pour les points du contour de tes éléments.
Bref il y a beaucoup de solutions pas très compliquées à mettre en oeuvre.

+
0
cs_Hercule2000 Messages postés 4 Date d'inscription mardi 26 avril 2005 Statut Membre Dernière intervention 28 avril 2005
28 avril 2005 à 10:47
Merci a tous déja pour votre aide.
Les piéces ne se touchent pas pour repondre a ta question Arnaud.
La méthode avec les matrices me semblent un peu compliké pour moi car je dois par la suite présenter mon projet et par conséquent maitriser les méthodes utilisées.

Par contre les dérivées me paraissent etre une bonne idée.

Si vous avais des idées je suis toujours tré intéressé

et comment reconnaitre les formes une fois ke je le tableau dérivée?

Je vous remercie
0
cs_VinceR Messages postés 47 Date d'inscription jeudi 11 juillet 2002 Statut Membre Dernière intervention 27 avril 2005
28 avril 2005 à 10:54
C'est peut être idiot, j'y connais pas grand chose en traitement du signal mais une transformée de fourier ça pourrait peut-être aider car chaque image (forme) a des caractéristiques bien précise qui peuvent se représenter ainsi. Le signal qu'il soit audio electrique ou visuel ça doit se traiter de la même manière. Le spectre d'un carré ou d'un rond sera différent.


A méditer, en plus c'est pas compliquer à faire.

VinceR
0
Arnaud16022 Messages postés 1329 Date d'inscription vendredi 15 août 2003 Statut Membre Dernière intervention 16 juin 2010 2
28 avril 2005 à 13:44
unr FTT?

heu...

bon effectivement pourquoi pas mais je vois pas ce que ca apportera ,
c'est pas vraiement un signal mais une image... enfin bon, on peut
expérimenter

moi je dirais, une fois que tu as le contour tu cherches l'angle entre
3 points consécutifs, tu fais une moyenne ou qqch comme ca et tu
regardes si ca te donne qqch... j'en sé rien.

_______________________


Omnia vincit labor improbus
0
cs_VinceR Messages postés 47 Date d'inscription jeudi 11 juillet 2002 Statut Membre Dernière intervention 27 avril 2005
28 avril 2005 à 13:48
Je reviens sur l'histoire Fourier, en réfléchissant 2mn, on s'en sert pour compresser une image. Donc potentionnellement on peut avoir sous forme de valeur a0 a1 .... an une équivalance données algébrique / image réel, pour comparer ensuite c'est très simple, une bonne boucle et on regarde le pourcentage d'erreur.

VinceR
0
cs_Hercule2000 Messages postés 4 Date d'inscription mardi 26 avril 2005 Statut Membre Dernière intervention 28 avril 2005
28 avril 2005 à 14:38
Et comment fait - on pour deriver un tableau?
0
Arnaud16022 Messages postés 1329 Date d'inscription vendredi 15 août 2003 Statut Membre Dernière intervention 16 juin 2010 2
28 avril 2005 à 17:03
MDR

ben pour dériver un tableau a une dimension tu fais

tab[2]-tab[0]

dx(1)=---------------

2-0

(tu utlises les 2 cases autour)

pour un tableau a 2 dimensions tu fais la meme chose avec les 8 cases
autour, donc tu pourra par dériver les bords de ton tableau

en fait j'ai pas vraiement la formule en tete, mais il y a déja eu une
question comme ca dans le forum, ou alors fais un tour sur un site de
math

++

_______________________


Omnia vincit labor improbus
0
Rejoignez-nous