Quelque soit le traitement que nous voulons appliquer à une image, il s’avère souvent nécessaire de lire cette image. Autrement dit, il faut commencer par charger l’image sur l’espace de travail, afin de pouvoir travailler dessus.

Dans cet article, nous allons vous montrez, avec un exemple de code et une base d’images, comment lire une image avec python à l’aide de la bibliothèque Pillow .


Introduction

En python, une image peut se lire de plusieurs façons avec des bibliothèques différentes, tel qu’Opencv-python, Scikit Image, Pillow , et bien d’autres.

Chaque bibliothèque se démarque par ses propres propriétés et son champ d’utilisation. Pour cet article, nous voulons vous montrer la lecture avec la bibliothèque Pillow, qui est propre à python, et que sa prise en main reste assez simple à maitriser !

La bibliothèque Pillow

Pillow est le successeur de PIL (Python Imaging Library) et a pour principale vocation le traitement d’images avec python.

Pour pouvoir travailler avec cette bibliothèque, il faut tout d’abord l’installer !

Installation de Pillow

L’installation est assez simple et pratiquement la même dans les différents systèmes d’exploitations: 'pip install pillow'

Pour plus de détails, nous vous invitons à consulter la page officielle ( https://pillow.readthedocs.io/en/stable/installation.html)

Si l’installation s’est bien passée, et il y a aucune raison que ce n’est pas le cas 😉 vous pouvez passez maintenant à la lecture des images.

Lire une image

Pour lire une image avec Python et la bibliothèque pillow, il faut:

  1. Importer le module ‘Image’ de la librairie ‘Pillow’ : 'from PIL import Image'
  2. Ouvrir l’image avec la fonction ‘open’ : 'Image.open('nom_image.format') ' *
  3. Afficher l’image avec la fonction ‘show’

* : Plus de 30 formats d’images peuvent être lues, selon la documentation officielle de Pillow (https://pillow.readthedocs.io/en/stable/handbook/image-file-formats.html),).

En code source propre, ça donne:

#importer le package Image de la bibliothèque Pillow
From PIL import Image

# lire l'image '4.jpg' *
# Copier le dossier 'train' dans votre espace de travail
imageLue = Image.open('train\4.jpg')

#Afficher l'image
imageLue.show()
Code python pour lire une image via pillow

* : L’image lue est prise de la base de données https://www.kaggle.com/nitishabharathi/scene-classification , dont le but est la classification de 6 scènes naturelles (ci dessous un aperçu de son contenu)

La base de données 'scene-classification' de kaggle

Exécution du code

L’exécution du code source va ouvrir votre visionneur de photos par défaut (sur cet exemple, nous utilisons windows 10), et ce petit GIF montre le visionnage

Visionnage de l'image après l'exécution

Sélection d’image avec une boite de dialogue

Le code précèdent nous a permis de lire une image dans un emplacement précis, c’est à dire que le chemin de l’image est bien précisé. Maintenant si vous voulez lire à partir de n’importe quel emplacement, vous devriez faire comment?

En général, dans le codage informatique, il existe différentes manières de procéder, et la lecture via une boite de dialogue n’échappe pas à la règle !

Pour notre cas, nous avons choisit la boite de dialogue de la bibliothèque d’interfaces graphiques TKinter (https://docs.python.org/fr/3/library/tkinter.html), qui a la particularité d’être livré avec l’installation de python, et donc aucune installation de plus ! Néanmoins, si ce n’est pas le cas un simple pip install tkinter fait l’affaire généralement !

Passons maintenant au code, là où il faut faire appel au module d’ouverture de boite de dialogue, en l’important via tkinter.filedialog import askopenfilename, le code python complet devient alors :

#importer le package Image de la bibliothèque Pillow
from PIL import Image

#importer la librairie pour la boite de dialogue
from tkinter.filedialog import askopenfilename

#récupérer le chemin de l'image via la boite de dialogue
chemin=askopenfilename(file='Selectionner une image', filetypes=[('JPEG files','.jpg'),('all files','.*')])

#lire l'image
imageLue = Image.open(chemin)

#Afficher l'image
imageLue.show()
Ouvrir une image en python avec une boite de dialogue

Notes sur le code:

  • Ce code tel qu’il est peut ouvrir seulement les images JPEG, mais avec des ajouts, il peut ouvrir d’autres formats
  • Cette fiche est dans un but pédagogique, et en python il y a beaucoup de partisans de minimum de lignes 😉 la lecture de l’image avec la boite de dialogue peut se faire directement:
imageLue = Image.open(askopenfilename(file=’Selectionner une image’, filetypes=[(‘JPEG files’,’.jpg’),(‘all files’,’.*’)]))

Conclusion

Nous avons vu ensemble comment lire une image avec Python à l’aide de la bibliothèque Pillow. dans ce post, Cette lecture est faite de deux façon:

  1. D’un chemin fixe (précisé)
  2. Ou d’un emplacement choisit via une boite de dialogue.

A présent, vous etes capable de lire une image en python 🙂 nous vous invitons vivement à :

  • Ecrire le code par vous même (malgré que ça parait simple ! )
  • Lire différents formats d’images (bitmap, png, …)
  • Et réduire les lignes quand c’est possible 😉

Categories:

Tags:

No responses yet

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Recevez nos nouveautés