Outils pour utilisateurs

Outils du site


prog:python-image

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
prog:python-image [2020/03/18 16:27] – [Exemple de traitement] jbpuelprog:python-image [2020/04/06 09:02] (Version actuelle) – supprimée jbpuel
Ligne 1: Ligne 1:
-====== Traitement des images en Python ====== 
- 
-{{ :prog:lena.jpg?direct&300|Lena}} 
- 
-Permet des traiter une (grande) partie du chapitre Photographie numérique de SNT. 
- 
-Un grand nombre de fonctions sont disponibles dans la bibliothèque PIL (Python Imaging Library) disponible dans le paquetage Pillow, dont voici un [[https://pillow.readthedocs.io/en/5.1.x/handbook/index.html|manuel]]. 
- 
-Après avoir installé Pillow **si nécessaire** : 
-<code> 
-# Par exemple : 
-pip install pillow 
-# à adapter selon distribution de Python (conda etc.) 
-</code> 
- 
-On dispose de la bibliothèque PIL proposant plusieurs modules, dont Image, qui met à disposition une classe d'objets du même nom.\\ 
-De très nombreux formats de fichiers d'images sont utilisables, et reconnus **par leur extension**. 
- 
-===== Exemple de traitement ===== 
- 
-L'exemple suivant consiste à ouvrir une image couleur dans un fichier jpg, la charger en mémoire, créer une autre image - en niveaux de gris cette fois - dont les pixels auront pour valeur la moyenne des composantes de l'image couleur, et enfin enregistrer cette nouvelle image dans un fichier png. 
- 
-<code python> 
-from PIL import Image 
- 
-# Ouverture d'un fichier et affectation à un objet de la classe Image 
-mon_image = Image.open("lena.jpg") 
-</code> 
- 
-On peut obtenir des caractéristiques de cet objet : 
- 
-<code python> 
-print("Format : ", mon_image.format) # Format de fichier 
-largeur, hauteur = mon_image.size # Tuple l, h en pixels 
-print("Taille : ", largeur, "x", hauteur) 
-print("Mode : ", mon_image.mode) # L (luminance), RGB, CMYK... 
-mon_image.show() # affichage de l'image via le programme par défaut du système 
-</code> 
- 
-Pour les méta-données exif, et en particulier GPS, voir mon_image._getexif() en particulier.\\ 
-Exemples [[https://www.sylvaindurand.fr/gps-data-from-photos-with-python/|ici]] et [[https://stackoverflow.com/questions/4764932/in-python-how-do-i-read-the-exif-data-for-an-image| là]]. 
- 
-Pour accéder à un pixel : 
- 
-<code python> 
-pixou = (10,10) 
-couleurs = mon_image.getpixel(pixou) # Retourne un tuple contenant les 3 composantes r, g, b 
-print(couleurs) 
-</code> 
- 
-Pour créer une nouvelle image : 
- 
-<code python> 
-nouvelle_image = Image.new("L", mon_image.size) # L : mode niveaux de gris 
-</code> 
- 
-Écrire des pixels dans l'image : 
- 
-<code python> 
-for i in range(largeur): 
-    for j in range (hauteur): 
-        r, g, b = mon_image.getpixel((i,j)) 
-        moy = int((r + g + b)/3) 
-        nouvelle_image.putpixel((i,j), moy) 
-</code> 
- 
-Enregistrer l'image dans un fichier : 
- 
-<code python> 
-nouvelle_image.save("image_modif.png") # L'extension détermine le format de fichier 
- 
-# fermeture des fichiers 
-mon_image.close() 
-nouvelle_image.close() 
-</code> 
  
prog/python-image.1584548847.txt.gz · Dernière modification : 2020/03/18 16:27 de jbpuel