Matplotlib imread en Python
L’article explique comment nous pouvons lire un fichier image dans un tableau en utilisant la méthode imread()
du paquet Matplotlib.
matplotlib.pyplot.imread()
Le matplotlib.pyplot.imread()
lit une image à partir d’un fichier dans un tableau.
Syntaxe
matplotlib.pyplot.imread(fname, format=None)
Ici, fname
représente le nom du fichier image à lire, et format
représente le format du fichier image. Si format=None
la fonction va extraire le format du nom du fichier.
La fonction retourne un tableau de la forme MxN
pour les images en niveaux de gris, MxNx3
pour les images RGB
, et MxNx4
pour les images RGBA
, où M
est la largeur et N
est la hauteur de l’image.
Exemple : Lire des images en utilisant la fonction matplotlib.pyplot.imread()
import numpy as np
import matplotlib.pyplot as plt
img_array = plt.imread("lena.png")
plt.imshow(img_array)
plt.title("Display Image read using imread()")
plt.axis("off")
plt.show()
Production :
Il lit l’image lena.png
dans le répertoire de travail courant dans un tableau en utilisant la méthode imread()
et affiche ensuite l’image en utilisant la méthode imshow()
.
Par défaut, l’image affichée comporte un axe X et un axe Y cochés. Pour supprimer les axes et les cochements, nous utilisons l’instruction plt.axis('off')
. Enfin, nous utilisons la fonction matplotlib.pyplot.show()
pour afficher l’image.
Nous pouvons visualiser la forme du tableau d’images en utilisant l’attribut shape
.
import matplotlib.pyplot as plt
img_array = plt.imread("lena.png")
print(img_array.shape)
Production :
(330, 330, 3)
Il imprime la forme de l’image - (330, 330, 3)
, représentant un tableau d’image tridimensionnel de largeur 330, hauteur 330, et 3 canaux.
Exemple : Découper des images en utilisant la fonction matplotlib.pyplot.imread()
Après que matplotlib.pyplot.imread()
ait lu une image dans un tableau NumPy, nous pouvons découper l’image en indexant le tableau à l’aide de l’opérateur :
.
import matplotlib.pyplot as plt
img_array = plt.imread("lena.png")[50:300, 30:300]
plt.imshow(img_array)
plt.axis("off")
plt.title("Clipped Image")
plt.show()
Production :
Ici, la méthode imread()
lit l’image complète dans un tableau, et nous ne sélectionnons que les éléments de la position 50 à 300 en largeur et les éléments de la position 30 à 300 en hauteur et nous stockons le tableau indexé dans img_array
. Nous affichons ensuite le tableau indexé en utilisant la fonction imshow()
.
import matplotlib.pyplot as plt
import matplotlib.patches as patches
img_array = plt.imread("lena.png")
fig, ax = plt.subplots()
im = ax.imshow(img_array)
patch = patches.Circle((160, 160), radius=150, transform=ax.transData)
im.set_clip_path(patch)
ax.axis("off")
plt.show()
Production :
Il affiche l’image découpée à l’aide d’un patch circulaire. Ici, nous découpons l’image à l’aide d’une pièce circulaire dont le centre est (160, 160)
et le rayon 150.
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedIn