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 :

Lire les images en utilisant la méthode imread

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 :

Découper les images en utilisant la méthode imread

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 :

Images circulaires en utilisant la méthode imread

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.

Article connexe - Matplotlib Images

  • Comment afficher une image en niveaux de gris dans Matplotlib