Marocain93
Messages postés8Date d'inscriptionvendredi 2 décembre 2016StatutMembreDernière intervention 6 janvier 2017
-
2 déc. 2016 à 19:53
Sugg1 -
19 déc. 2016 à 19:11
Bonsoir tout le monde,
Etudiant en licence professionnelle, je voudrais pouvoir calculer le centre de gravité d'une forme dans une image avec plusieurs formes pixélisées.
J'ai réussi à l'aide de logiciel minilab de supprimer toutes les pixels autour de ma forme (cercle en rouge) pour trouver les pixels suivants de mon cercle rouge : r=236. v=44; b=20;
Je voudrais maintenant à l'aide d'une syntaxe en java pouvoir calculer le centre de gravité de mon cercle rouge seulement.
J'ai commencé à écrire le code suivant pour lire l'image et définir sa largeur et hauteur et changer les couleurs de l'image en rouge uniquement et l'afficher à la fin mais je suis pas sur que cela puisse m'aider.
{
CImage.ChargeImage(1, "Contours.gif");
int largeur, hauteur;
int r=236;
int v=44;
int b=20;
largeur=CImage.DonneTailleXImage(1);
hauteur=CImage.DonneTailleYImage(1);
for( int i=0 ; i<largeur; i++)
{
for ( int j=0; j<hauteur; j++)
{
CImage.ChangeRougeImageXY(1,i,j,r);
CImage.ChangeVertImageXY(1,i,j,v);
CImage.ChangeBleuImageXY(1,i,j,b);
}
CImage.ImageAAfficher(1);
}
}
Toute suggestion ou aide de votre part ne sera pas de refus :)
Cordialement
A voir également:
Calcul centre de gravité
Calculer centre de gravité - Meilleures réponses
Comment calculer le centre de gravité - Meilleures réponses
KX
Messages postés16727Date d'inscriptionsamedi 31 mai 2008StatutModérateurDernière intervention 2 décembre 2023126 2 déc. 2016 à 20:07
Bonjour,
Le centre de gravité de ton cercle c'est la moyenne de ses pixels.
Donc calcule la moyenne de tous les X du cercle, la moyenne de tous les Y, et ça te donnera deux coordonnées X et Y qui sont le centre de gravité de ton cercle.
Marocain93
Messages postés8Date d'inscriptionvendredi 2 décembre 2016StatutMembreDernière intervention 6 janvier 2017 4 déc. 2016 à 15:38
Bonjour,
Je voudrais vous remercier pour votre aide d'abord, Cependant j'aurais une autre question : je ne connais pas la taille de mon image alors pour calcule la moyenne de la hauteur et la largeur je crois que cela sera nécessaire de connaitre X et Y de toute l'image non ?
KX
Messages postés16727Date d'inscriptionsamedi 31 mai 2008StatutModérateurDernière intervention 2 décembre 2023126 4 déc. 2016 à 16:05
Marocain93
Messages postés8Date d'inscriptionvendredi 2 décembre 2016StatutMembreDernière intervention 6 janvier 2017
>
KX
Messages postés16727Date d'inscriptionsamedi 31 mai 2008StatutModérateurDernière intervention 2 décembre 2023 4 déc. 2016 à 16:07
Oui, je suis d'accord avec vous mais je ne connais pas la taille (X,Y) du cercle...
KX
Messages postés16727Date d'inscriptionsamedi 31 mai 2008StatutModérateurDernière intervention 2 décembre 2023126 4 déc. 2016 à 16:11
Tu n'as pas besoin de connaître la taille du cercle, tu sais qu'il est rouge, ça suffit.
Tu parcours tous les pixels de toute l'image et tu fais la moyenne des pixels qui sont rouge en ignorant les autres couleurs.
Marocain93
Messages postés8Date d'inscriptionvendredi 2 décembre 2016StatutMembreDernière intervention 6 janvier 2017
>
KX
Messages postés16727Date d'inscriptionsamedi 31 mai 2008StatutModérateurDernière intervention 2 décembre 2023 4 déc. 2016 à 16:17
{
CImage.ChargeImage(1, "Contours.gif");
int largeur, hauteur;
int r=236;
int v=44;
int b=20;
int centre=(r+v+b)/3;
largeur=CImage.DonneTailleXImage(1);
hauteur=CImage.DonneTailleYImage(1);
for( int i=0 ; i<largeur; i++)
{
for ( int j=0; j<hauteur; j++)
{
CImage.ChangeRougeImageXY(1,i,j,centre);
}
CImage.ImageAAfficher(1);
}
}
Excusez moi mais je n'ai pas bien compris parceque je sais que la moyenne de ces couleurs me donnerait du gris...
4 déc. 2016 à 15:38
Je voudrais vous remercier pour votre aide d'abord, Cependant j'aurais une autre question : je ne connais pas la taille de mon image alors pour calcule la moyenne de la hauteur et la largeur je crois que cela sera nécessaire de connaitre X et Y de toute l'image non ?
4 déc. 2016 à 16:05
À quoi te sers ce code alors ?
4 déc. 2016 à 16:07
4 déc. 2016 à 16:11
Tu parcours tous les pixels de toute l'image et tu fais la moyenne des pixels qui sont rouge en ignorant les autres couleurs.
4 déc. 2016 à 16:17
CImage.ChargeImage(1, "Contours.gif");
int largeur, hauteur;
int r=236;
int v=44;
int b=20;
int centre=(r+v+b)/3;
largeur=CImage.DonneTailleXImage(1);
hauteur=CImage.DonneTailleYImage(1);
for( int i=0 ; i<largeur; i++)
{
for ( int j=0; j<hauteur; j++)
{
CImage.ChangeRougeImageXY(1,i,j,centre);
}
CImage.ImageAAfficher(1);
}
}
Excusez moi mais je n'ai pas bien compris parceque je sais que la moyenne de ces couleurs me donnerait du gris...