begin process at 2012 05 30 19:11:37
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Graphique

 > 

Trouver le centre du cercle


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Trouver le centre du cercle

jeudi 16 février 2006 à 15:58:55 | Trouver le centre du cercle

stanlenoan

Bonjour à tous,

Je travaille sur un programme de traitement d'images venant d'une webcam, à partir de la bibliothèque openCV.
Pour le moment je veux suivre le mouvement d'une balle de ping pong sur un fond noir. Après traitement j'obtient un contour de la bille sans bruit ailleur sur l'image.
Mon problème est de trouver le centre de ce pseudo cercle pour le tracer, et suivre le centre de la ball.
J'ai pensé à plusieurs solution telle que moyenner les abscisses d'une part et les ordonnées d'autre part de tous les points du contours pour trouver le centre; mais mon codes bien que compilé sans erreur n'aboutit à rien si ce n'est un cercle en plein milieu de l'écran, et je perds l'image instantané...

Voilà mon morceau de code, pourriez vous me dire ce qui cloche???
planes[1] est une image IplImage

CvPoint* tab;
  tab = (CvPoint*)malloc( 320*240*sizeof(CvPoint) );
  int s=0;

  //Algo pour trouver tous les points non noir.
  for(i=0 ; i<240 ; i++)
  {
   for (j=0 ; j<320 ; j++)
   { if (planes[1]->imageData[j+i*320]=255u)
    { tab[s]=cvPoint(j,i);
     s=s+1;
    }
    else s=s;
   }
  }
    //planes[1]->imageData[100+100*320]=255;

  int xaverage, yaverage;
  for (i=0 ; i<s ; i++)
  { xaverage=xaverage+tab[i].x;
   yaverage=yaverage+tab[i].y;}
  xaverage=xaverage/s;
  yaverage=yaverage/s;
  
  cvCircle( planes[1], cvPoint(xaverage,yaverage), 20, CV_RGB(0,255,0), 1 );

jeudi 16 février 2006 à 17:37:44 | Re : Trouver le centre du cercle

buno

Administrateur CodeS-SourceS
Une autre approche (je n'ai pas testé): Etablir les coordonnées des diamètres horizontaux et verticaux.

Lors du parcours de ton image, quand tu "rentre" dans ton cercle, tu as les coordonnées du point d'entrée. Idem pour la sortie. Il suffit après de garder le Xmin, Xmax, Ymin et Ymax.

Ton centre se trouvera alors (approximativement) en (Xmax-Xmin)/2 et (Ymax-Ymin)/2

Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Le site de mon mariage
vendredi 17 février 2006 à 09:47:27 | Re : Trouver le centre du cercle

luhtor

Réponse acceptée !
Pourtant c'est aussi a ca que j'ai pensé, faire la moyenne des points. Mais je suis désolé, ton code est illisible. Et je comprends pas pourquoi tu calculs la moyenne en deux temps. Une seule boucle suffit.




Cette discussion est classée dans : trouver, tab, centre, xaverage, yaverage


Répondre à ce message

Sujets en rapport avec ce message

Occurence Tableau [ par BimboKlak ] Comment faire pour trouver l'occurence d'un nombre dans un tableau à 1 dimension en C?ex:tab[4] = {3, 2, 3, 2}for (i=0;i cout Et ensuite trouver comb Trouver MySQL.h [ par kalf2000 ] Salut je suis en 2ème année de bts info indus et en ce moment je prépare un projet pour mon examen.J'aurai voulu savoir ou je pourrai trouver la libra trouver ou est installer un programme(vc++) [ par goth ] je voulais juste savoir si il y avait un autre moyen de trouver le repertoire d'installation d'un programme (genre winamp par exemple) que de le reche comment piloter le scanner en C++ [ par andromalius ] bonjour j'aimerai pouvoir acquerire une image dans une application que je developpe, mais j'ai beacoup de mal a trouver de la doc sur caj'ai trouver l char tab[]=a; [ par zelze ] Voila mon probleme:je connais char tab[]="ton texte"; mais se que je veux faire c'est a la place de "ton texte" mettre une variable.j'ai essaié plusie ajout d'un caractere dans un tableau [ par kalf2000 ] salut,g un petit blèm:g un tableau de caractère où g mis un chiffre, aprés avoir utilisé la fct itoa. et il fo que j'insere un autre chiffre avant cel pb reservation memoire C [ par dam1234 ] Salut, g un probleme de reservation d'espace memoire ds mon prog utilisant l api mysql. Enfin je pense que c un pb de reservation car qd j'execute un POUR LES PROS [ par rigadin ] Le sujet serai :2 joueurs s'affronte pour trouver la bonne combinaison et vont jouer de manière alternative pour trouver un nb de 5 chiffres compris e comment programmer un tab control [ par jbebli ] tab Allocation dynamique [ par payen ] Salut a tous,J'ai juste besoin d'une petite confirmation: je souhaite creer de facon dynamique un tableau a NBL lignes NBC colonnes. Lequel des 2 code


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,187 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales