B - Fonctionnement avec Python
Lorsque l’image est stockée, elle peut encore être traitée à l’aide d’algorithmes. Nous allons utiliser le langage de programmation Python afin de directement travailler sur les pixels d'une image.
Repérage des pixels dans une image
Pour travailler sur une image numérique, on agit sur ses pixels. Chaque pixel est repéré par ses coordonnées (i ; j), où :
i correspond à la colonne (axe horizontal),
j correspond à la ligne (axe vertical).
Par convention, le pixel (0 ; 0) se situe dans le coin supérieur gauche de l’image. Cette disposition simplifie le traitement informatique, car les images sont lues séquentiellement, ligne par ligne, depuis le haut.

Exemple :
Dans une image de 800 × 600 pixels, le pixel en haut à droite aura pour coordonnées (799 ; 0).
Le pixel en bas à gauche sera (0 ; 599).
Parcours de tous les pixels d’une image
Pour analyser ou modifier une image de manière systématique, il est souvent nécessaire de parcourir tous ses pixels un par un. En programmation, cela se fait à l’aide de boucles imbriquées. L'exemple ci-dessous est un exemple en Python :
# on parcourt les pixels sur la largeur de l’image
for i in range(largeur):
# on parcourt les pixels sur la hauteur de l’image
for j in range(hauteur):
# on travaille sur le pixel de coordonnées (i,j)
fonction(i,j)
Modification des pixels d’une image
En Python, le package PIL (Python Imaging Library), aussi connu sous le nom de Pillow, offre un ensemble complet de fonctions pour manipuler des images. Cette bibliothèque permet :
d'ouvrir et enregistrer des images dans différents formats (JPEG, PNG, GIF, etc.),
d'appliquer des transformations (redimensionnement, rotation, filtres),
de créer des images entièrement nouvelles.
from PIL import Image
# Créer une image de 9 pixels en blanc
im = Image.new("RGB", (3, 3) ,"RGB(255, 255, 255)")
# Obtenir la valeur RGB du pixel (0, 0)
(rouge, vert, bleu) = im.getpixel ((0, 0))
# Afficher la valeur RGB obtenue du pixel (0, 0)
print(rouge, vert, bleu)
# Attribuer une nouvelle valeur RGB (rouge) au pixel (0, 0)
rouge, vert, bleu = 255, 0, 0
im.putpixel((0, 0), (rouge, vert, bleu))
# Attribuer la couleur noire au pixel (2, 0)
im.putpixel((2, 0), (0, 0, 0))
# Sauvegarder puis afficher l’image
im.save("monimage9px.png")
im.show()
# Obtenir et afficher la liste de tous les pixels (ici 9)
print(list(im.getdata()))