Vous êtes sur la page 1sur 3

Lire une image avec Python by ISMAHAN 3 déc.

2020
Introduction

Quel que soit le traitement que nous voulons appliquer à une image, il faut commencer par
charger l’image sur l’espace de travail, afin de pouvoir travailler dessus.

En python, une image peut se lire de plusieurs façons avec des bibliothèques différentes :
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 exercice nous
effectuerons la lecture avec la bibliothèque Pillow, qui est propre à python.

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’exploitation : '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, vous pouvez passer 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 cela 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 :

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 :

Sélection d’image avec une boite de dialogue

Le code précédant 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, voici comment procéder ?

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 choisi 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 peut ouvrir seulement formats JPEG, mais avec des ajouts, il peut en ouvrir d’autres.
• Cette fiche a un but pédagogique, aussi le nombre de ligne peut être réduit.
• 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çons :

1. D’un chemin fixe (précisé)


2. Ou d’un emplacement choisit via une boite de dialogue.

A présent, vous êtes 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

Vous aimerez peut-être aussi