Image en niveau de gris

Fermé
E-Pkton - Modifié par E-Pkton le 30/03/2014 à 19:00
 E-Pkton - 2 avril 2014 à 14:43
Bonjour, j'ai un programme à faire où lorsque j'ouvre mon image, elle est transformé en image à niveau de gris.

Le travail est réalisé sur Processing (je préfère préciser :p)

PImage img;
int longueur, largeur;


void setup() {    
        img = loadImage( "pika.jpeg" );
        longueur=img.height;
        largeur=img.width;
        int dimension = img.width * img.height;
        size(largeur, longueur);
        image( img , 0 , 0 );  
        niveauGris();
                  }

Donc ça c'est le début du code, ça me permet d'ouvrir mon image dans une fenêtre de la taille de l'image (c'était l'étape 1 à réaliser).

Mais pour faire le niveau de gris j'arrive pas à trouver comment faire, à chaque fois ça m'ouvre l'image sans changer la couleur.

Voilà le début de ce que j'ai fais :
void niveauGris()
{

  byte[] tabPixels = new byte [img.width * img.height];
   img = loadImage( "pika.jpeg" );
        longueur=img.height;
        largeur=img.width;
          img.loadPixels();

      int i;
      
      for (i=0; i<tabPixels.length; i++)
      {
      tabPixels[i]= (byte)(tabPixels[i]/3);
}
img.updatePixels();
} 


Quelqu'un saurait m'aider à voir ce qui ne va pas s'il vous plait ? Merci d'avance !

A voir également:

3 réponses

Quelqu'un peut m'aider svp? :(
0
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 2
2 avril 2014 à 08:25
Salut,

La solution en deux lignes :
ColorConvertOp op = new ColorConvertOp(ColorSpace.getInstance(ColorSpace.CS_GRAY), null);
op.filter(image, null);
0
Je n'ai pas l'autorisation d'utiliser les fonctions ou méthodes toute faite, je suis obligé de passer par un code qui changera chaque pixel en niveau de gris pour toute l'image. (avec genre une boucle for et tout).
0