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

Signaler
Messages postés
4
Date d'inscription
vendredi 17 avril 2015
Statut
Membre
Dernière intervention
23 avril 2015
-
Messages postés
4
Date d'inscription
vendredi 17 avril 2015
Statut
Membre
Dernière intervention
23 avril 2015
-
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

Messages postés
16365
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
16 juin 2021
122
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 ?
Messages postés
4
Date d'inscription
vendredi 17 avril 2015
Statut
Membre
Dernière intervention
23 avril 2015

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.
Messages postés
16365
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
16 juin 2021
122 >
Messages postés
4
Date d'inscription
vendredi 17 avril 2015
Statut
Membre
Dernière intervention
23 avril 2015

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.
Messages postés
4
Date d'inscription
vendredi 17 avril 2015
Statut
Membre
Dernière intervention
23 avril 2015
>
Messages postés
16365
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
16 juin 2021

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);
                   
  
                      }
Messages postés
16365
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
16 juin 2021
122 >
Messages postés
4
Date d'inscription
vendredi 17 avril 2015
Statut
Membre
Dernière intervention
23 avril 2015

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...
Messages postés
4
Date d'inscription
vendredi 17 avril 2015
Statut
Membre
Dernière intervention
23 avril 2015

Merci beaucoup pour vos réponses.