ÉMILIE DE RODAT
TECHNOLOGIE
Image numérique, entités et modification de l'image matricielle
Entités de l’image matricielle : profondeur / taille / résolution.
Le pixel (picture element): est l’unité de base de l’image matricielle.
La définition de l'image : il s'agit du nombre de pixels) au total, nombre de pixels en largeur * nombre de pixels en hauteur.
Exemple de définition: 1600 pixels en largeur * 900 pixels en hauteur = 1440000 pixels.
La résolution de l'image : Elle détermine le nombre de pixels par unité de longueur (pixels par pouce linéaire ou bien ppp) La résolution exprime si l'image sur l'écran est nette ou plus floue.
Exemple de résolution: 1600 pixels en largeur / 16 inches (ou pouces en français) = 100 pixels par pouce
Le ratio de l'image : le nombre de pixels en largeur divisé par le nombre de pixels en hauteur. (sans unité)
Exemple de ratio: 1600 pixels en largeur / 900 pixels en hauteur = 4/3
Souvent codé sur trois octets (format JPEG), un octet pour chaque sous-pixel, les pixels de couleur RGB sont constitués de: rouge RED (0-100%), vert GREEN (0-100%), et de bleu BLUE (0-100%).
La profondeur de ce type de pixel est donc de 3, c'est à dire que chaque pixel occupe 3 octets de mémoire.
La taille de l'image correspond à la place que l'image prend dans la mémoire de l'ordinateur, et se calcule par une multiplication. La taille de l'image numérique s'exprime en octets.
La taille de l'image numérique = définition image * profondeur.
Afin d'obtenir toutes les couleurs possibles on mélange la valeur du courant électrique et donc l’intensité de lumière dans les 3 sous-pixels : RGB (Rouge - Vert - Bleu)
Blanc = 100% Rouge + 100 % Vert + 100% Bleu = (1111111 - 11111111- 11111111) = 255-255-255
Noir = 0% Rouge + 0 % Vert + 0% Bleu = (00000000 - 00000000 - 00000000) = 0-0-0
Gris = 50% Rouge + 50 % Vert + 50% Bleu = (10000000 - 10000000 - 10000000) = 128-128-128
Jaune = 100% Rouge + 100 % Vert + 0% Bleu = (1111111 - 11111111- 00000000)=255-255-0
Magenta = 100% Rouge + 0 % Vert + 100% Bleu = (1111111 - 00000000- 11111111)=255-0-255
Comment modifier une image matricielle; Utilisation de différent filtres
Nous allons utiliser le langage de programmation Python afin de directement travailler sur les pixels d'une image. Pour travailler sur les pixels, il faut déterminer la valeur du canal rouge, la valeur du canal vert et la valeur du canal bleu pour un pixel donné ou bien encore modifier carrément la couleur d'un pixel.
Avant de commencer à écrire un programme qui nous permettra de travailler sur les pixels d'une image, il est nécessaire de préciser que chaque pixel a des coordonnées x, y.
Exemple:
from PIL import Image # on ouvre la bibilothèque de l image
image=Image.open("exemple.png") # on recupere les dimensions de l image
longueur,largeur=image.size
image2=Image.new(’RGB’,(longueur,largeur)) # on défini le nom de l'image modifiée
for y in range(largeur): # on va boucler sur tous les pixels
for x in range(longueur):
p=image.getpixel((x,y)) # on accede a l'information de chaque pixel
rouge=p[0]
vert=p[1]
bleu=0 # on regle la composante bleu a 0
image2.putpixel((x,y),(rouge,vert,bleu))
image2.save("image2.png")
image2.show()
TP filtres Python "Pillow" sur CAPYTALE