Traitement d'images Python avec Pillow : guide complet

La bibliothèque Pillow (Python Imaging Library) est idéale pour le traitement d'images. Typiquement utilisée pour archivage et traitement par lots. Libre à vous de l'utiliser pour tout ce que vous imaginez. Vous pouvez :
- Créer des miniatures (thumbnails)
- Convertir entre formats de fichiers
- Imprimer des images
- Obtenir un histogramme (idéal pour amélioration contraste auto)
- Rotater des images
- Appliquer filtres (flou, netteté, etc.)
Installer le package de traitement d'images
Pour installer Pillow, fork et continuation de la PIL originale, utilisez pip :
pip3 install Pillow
Traiter les images
Pillow offre plusieurs filtres dispo après import ImageFilter. Ex: flouter une image :
from PIL import Image, ImageFilter
im = Image.open("chatons.jpg")
floue = im.filter(ImageFilter.BLUR)
Autres filtres : SHARPEN, SMOOTH, EDGE_ENHANCE. Liste complète : doc référence ImageFilter.
Rotation image 180° :
rotated_image = im.rotate(180)
Sauvegarder résultat :
rotated_image.save("rotated.jpg")
Afficher les images
Cette librairie permet aussi d'afficher images à l'écran. Code exemple pour afficher chatons.jpg :
from PIL import Image
im = Image.open("chatons.jpg")
im.show()
print(im.format, im.size, im.mode)
# JPEG (1920, 1357) RGB
Dans le GIF animé ci-dessous, démo utilisation Pillow depuis IPython :

Pour aller plus loin
La bibliothèque offre bien plus. Pour tout apprendre sur traitement images Python avec Pillow, direction le tutoriel officiel !
Python
- Construire un robot avec Raspberry Pi et Python : Guide complet
- Fonction Python print() : Guide pratique avec exemples
- Maîtriser la méthode strip() de Python : Guide complet et exemples pratiques
- Maîtriser str.count() de Python : Compter caractères et sous-chaînes avec exemples
- Maîtriser les chaînes format() en Python avec exemples clairs
- Maîtriser la méthode String.find() de Python : Syntaxe, Exemples et Alternatives
- Maîtriser les fonctions lambda Python : exemples pratiques et bonnes pratiques
- Fonction Python round() expliquée avec exemples pratiques
- Maîtriser la fonction Python map() : syntaxe, exemples et bonnes pratiques