Récupération coordonnées pixel

LiliF69 Messages postés 2 Date d'inscription mardi 31 mars 2009 Statut Membre Dernière intervention 15 mai 2009 - 24 avril 2009 à 15:14
Pistol_Pete Messages postés 1053 Date d'inscription samedi 2 octobre 2004 Statut Membre Dernière intervention 9 juillet 2013 - 27 avril 2009 à 16:04
Bonjour à tous.

Je voudrais savoir comment on récupère les coordonnées des pixels d'une image
J'utilise un BufferefImage que j'étudie ligne par ligne et colonne par colonne, de la manière suivante :

BufferedImage image = seuillageImage();
        if (image != null)
        {
            result = new BufferedImage(image.getWidth(), image.getHeight(),BufferedImage.TYPE_INT_RGB);
            for (int y = 0; y < image.getWidth(); y++)  //pour chq colonne de l'image
            {
                for (int x=0; x < image.getHeight(); x++) // pour chq ligne de l'image
                {
                    int rgb = image.getRGB(y, x); // récupere la valeur RGB du pixel
                    int valPi = (int) ((getBlue(rgb) + getGreen(rgb) + getRed(rgb))/3); // transforme la valeur du pixel en niveau de gris

                   /* ici sera mon nouveau code */

                    result.setRGB(y, x, makeRGB(valPi, valPi, valPi));
                }
            }

En fait je voudrais récupérer les coordonnées de chaque pixel comme : (x;y) , de façon à lorsque j'appelle un autre pixel voisin, je puisse marquer (x+1;y) par exemple.

Le but de ce programme est de dire que si le pixel est blanc et que ses 8 pixels voisins sont noirs, alors ce pixel devient noir.

Je vous remercie d'avance de vos réponse.

1 réponse

Pistol_Pete Messages postés 1053 Date d'inscription samedi 2 octobre 2004 Statut Membre Dernière intervention 9 juillet 2013 7
27 avril 2009 à 16:04
Salut

BufferedImage image = seuillageImage();
if (image != null)
 {
      result = new BufferedImage(image.getWidth(), image.getHeight(),BufferedImage.TYPE_INT_RGB);

      for (int y = 1; y < image.getWidth()-1; y++)  //pour chq colonne de l'image
      {
         for (int x=1; x < image.getHeight()-1; x++) // pour chq ligne de l'image
         {
             int rgb = image.getRGB(y, x); // récupere la valeur RGB du pixel
             int Swap=true;
   
         int valPi = (int) ((getBlue(rgb) + getGreen(rgb) +
getRed(rgb))/3);
             if(valPi==255) //pixel blanc
               for(k=-1;k<=1;k++)
                 for(l=-1;l<=1;l++)
                   if(k!=0 || l!=0)
                   { 
                     rgb = image.getRGB(y, x);
                     if(((getBlue(rgb) + getGreen(rgb) +
getRed(rgb))/3)!=0)
                        Swap=false;

                  
                   }
                 
              if(Swap)
                result.setRGB(y, x, makeRGB(0, 0, 0));
              else
                result.setRGB(y, x, makeRGB(255, 255, 255));
           }
    }

Si tu cherches d'autre traitement, regarde sur mon site internet.
A+
____________________________________________________________________________
Mon site internet :  
0
Rejoignez-nous