Calcule la moyenne et l'ecart-type d'une image

joujoualg
Messages postés
4
Date d'inscription
vendredi 17 avril 2015
Statut
Membre
Dernière intervention
23 avril 2015
- 22 avril 2015 à 21:33
joujoualg
Messages postés
4
Date d'inscription
vendredi 17 avril 2015
Statut
Membre
Dernière intervention
23 avril 2015
- 23 avril 2015 à 23:11
Bonsoir,
j'aimerai savoir comment calculer la moyenne (M=1/N ? I(x,y)) et l'ecart-type (?=sqrt(?? ^2-M^2 )) d'une image en java.
?? ^2 ==1/N ?(I(x,y))^2
merci d'avance

1 réponse

KX
Messages postés
16568
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
5 juillet 2022
124
22 avril 2015 à 22:05
Bonjour,

J'imagines que tu veux dire :
  • moyenne M = 1/N . ∑ I(x,y)
  • écart type σ = √ [1/N . ∑ I(x,y)² - M²]

Mais :
  • que vaut I(x,y) par rapport à l'image ?
  • quel est le problème pour que tu n'arrives pas à faire ça en Java ?
0
joujoualg
Messages postés
4
Date d'inscription
vendredi 17 avril 2015
Statut
Membre
Dernière intervention
23 avril 2015

22 avril 2015 à 23:18
I(x,y) vaut dire les pixels de l'image normalement.
je suis débutante en Java et je ne sais pas comment sort les pixels de l'images pour le calcule.
0
KX
Messages postés
16568
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
5 juillet 2022
124 > joujoualg
Messages postés
4
Date d'inscription
vendredi 17 avril 2015
Statut
Membre
Dernière intervention
23 avril 2015

23 avril 2015 à 08:20
Pour récupérer la couleur du pixel (x,y) d'une image tu peux faire :

BufferedImage img = ImageIO.read(new File("C:/test.png"));
Color clr = new Color(img.getRGB(x,y));


Mais cela va te renvoyer une couleur, et faire la moyenne de plusieurs couleurs ça n'a pas de sens...
La moyenne, ou l'écart type s'appliquent à des nombres, il faut donc que I(x,y) soit un nombre pour pouvoir faire les calculs dessus.
0
joujoualg
Messages postés
4
Date d'inscription
vendredi 17 avril 2015
Statut
Membre
Dernière intervention
23 avril 2015
> KX
Messages postés
16568
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
5 juillet 2022

Modifié par joujoualg le 23/04/2015 à 22:02
Ce programme est correcte?

protected int Moyenne()
 {
   int [][] pixel= new int[monImage.getWidth()][monImage.getHeight()];
                
               
                  int x,y;
                int somme = 0;
            
            int monImage[][];
        int Width;
        int Height;
                  for (x=0; x < Width -1; x++) {
                
                        for(y=0; y < Height-1;y++ )
                        {
                            somme= somme+ monImage[x][y];
                        }
                    }
                  return Moyenne= somme/(width*height);
                   
  
                      }
0
KX
Messages postés
16568
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
5 juillet 2022
124 > joujoualg
Messages postés
4
Date d'inscription
vendredi 17 avril 2015
Statut
Membre
Dernière intervention
23 avril 2015

23 avril 2015 à 22:04
Avant de poster ton code sur le forum, ce serait bien de le tester.
N'importe quel compilateur Java va tout de suite te sortir un grand nombre d'erreurs liées à ce code...
0
joujoualg
Messages postés
4
Date d'inscription
vendredi 17 avril 2015
Statut
Membre
Dernière intervention
23 avril 2015

Modifié par joujoualg le 23/04/2015 à 23:20
Merci beaucoup pour vos réponses.
0