Projets

[MP03b] Andy - Dis moi oui !

Objectifs :

  • Numériser une image sous forme d’un tableau de valeurs numériques
  • Modifier format, taille, contraste ou luminance d’images numériques
  • Créer une image à l’aide d’un logiciel de modélisation.

Critères d'évaluation :

  • Compréhension de la représentation des images en niveaux de gris et en couleur
  • Capacité à manipuler la table de couleurs d'une image
  • Qualité du code produit et et de sa documentation

Lectures et travail demandés :

À partir d’une image en couleur de votre choix, on se propose de dessiner une mosaïque inspirée par le portrait de Marylin  Monroe réalisé par Andy Warhol. Vous devez coder un programme qui reproduira cette image avec les traitements suivants sur sa table de couleurs (R1,G1,B1) :

  • Image n° 2 : les nouvelles couleurs (R2,G2,B2) des pixels sont permutées de telle manière que : R2=B1, G2=R1, B2=G1

  • Image n° 3 : les nouvelles couleurs (R3,G3,B3) des pixels sont permutées de telle manière que : R3=G1, G3=B1, B3=R1

  • Image n° 4 : les nouvelles couleurs (R4,G4,B4) des pixels sont inversées de telle manière que : R4=255-R1, G4=255-G1, B4=255-B1

  • Image n° 5 : elle représente l’image en niveaux de gris en faisant la moyenne des composantes (R1,G1,B1) de l’image initiale

  • Image n° 6 : les couleurs (R5,G5,B5) des pixels de l’image n° 5 sont inversées de telle manière que : R6=255-R5, G6=255-G5, B6=255-B5

  • Image n° 7 : elle représente l’image initiale en supprimant la composante bleue.

  • Image n° 8 : elle représente l’image initiale en supprimant la composante rouge.

  • Image n° 9 : elle représente l’image initiale  en supprimant la composante verte.

Quelques fonctions et méthodes utiles de Processing

PImage img1, img2; 
// Datatype for storing images. Processing can display .gif, .jpg, .tga, and .png images

void setup() 
{
  img1 = loadImage("mongolfiere.jpg");  
  //  Loads an image into a variable of type PImage
  
  img2 = createImage(img1.width, img1.height, RGB); 
  // Creates a new PImage in RGB format
  
  image(img1, 0, 0); 
  // This function draws the img1 image to the display window
  
  int i = 10 ;
  float r = red(img1.pixels[i]); // Extracts the red value from a pixel
  float g = green(img1.pixels[i]); // Extracts the green value from a pixel
  float b = blue(img1.pixels[i]); // Extracts the blue value from a pixel

  img2.pixels[i]=color(b, r, g ); // Storing color values
  
  ...

}

Ressources :