Méthode imread() de Matplotlib

La méthode imread() est une fonction de la bibliothèque Matplotlib utilisée pour lire les données d'image à partir d'un fichier image.

La méthode imread() renvoie un objet numpy.ndarray dont la forme est(nrows, ncols, nchannels), indiquant le nombre de lignes, de colonnes et de canaux de l'image lue :

  • Si l'image est une image en niveaux de gris, nchannels vaut 1.
  • S'il s'agit d'une image en couleur, nchannels vaut 3 ou 4, représentant respectivement les trois canaux de couleur rouge, vert et bleu, et un canal alpha.

La syntaxe de la méthode imread() est la suivante :

matplotlib.pyplot.imread(fname, format=None)

Description du paramètre :

  • fname: Spécifie le nom de fichier ou le chemin d'accès du fichier image à lire. Il peut s'agir d'un chemin relatif ou absolu.
  • format : Le paramètre spécifie le format du fichier image. S'il n'est pas spécifié, le format est automatiquement reconnu en fonction de l'extension du fichier par défaut.

L'exemple suivant montre comment utiliser la fonction imread pour lire les données d'image à partir d'un fichier image et les afficher :

Exemple

import matplotlib.pyplot as plt

# Lire le fichier image, adresse de téléchargement : /static.jyshare.com/images/demo/map.jpeg
img = plt.imread('map.jpeg')

# Afficher l'image
plt.imshow(img)
plt.show()

Dans l'exemple ci-dessus, nous utilisons d'abord la méthode imread() pour lire les données d'image à partir du fichier image nommé map.jpeg et les stocker dans la variable img.

Ensuite, nous utilisons la méthode imshow() pour afficher cette image.

Remarque : nous n'avons pas spécifié de carte de couleurs lors de l'affichage de l'image, car la méthode imread() a déjà converti les données d'image au format RGB selon la carte de couleurs correcte, nous pouvons donc utiliser directement la carte de couleurs par défaut pour afficher l'image.

Le résultat de l'affichage est le suivant :

Nous pouvons modifier l'image en changeant le tableau numpy.

Par exemple, si nous multiplions le tableau par un nombre0≤≤1, nous assombrissons l'image :

Exemple

import matplotlib.pyplot as plt

# Lire le fichier image, adresse de téléchargement : /static.jyshare.com/images/mix/tiger.jpeg
img_array = plt.imread('tiger.jpeg')
tiger = img_array/255
#print(tiger)

# Afficher l'image
plt.figure(figsize=(10,6))

for i in range(1,5):
    plt.subplot(2,2,i)
    x = 1 - 0.2*(i-1)
    plt.axis('off') #masquer les axes de coordonnées
    plt.title('x={:.1f}'.format(x))
    plt.imshow(tiger*x)

plt.show()

Le résultat de l'affichage est le suivant :

L'exemple suivant est utilisé pour recadrer une image :

Exemple

import matplotlib.pyplot as plt

# Lire le fichier image, adresse de téléchargement : /static.jyshare.com/images/mix/tiger.jpeg
img_array = plt.imread('tiger.jpeg')
tiger = img_array/255
#print(tiger)

# Afficher l'image
plt.figure(figsize=(6,6))
plt.imshow(tiger[:300,100:400,:])
plt.axis('off')
plt.show()

Le résultat de l'affichage est le suivant :

Si nous définissons les éléments du tableau des coordonnées verte et bleue de la couleur RVB sur 0, nous obtiendrons une image rouge :

Exemple

import matplotlib.pyplot as plt

# Lire le fichier image, adresse de téléchargement : /static.jyshare.com/images/mix/tiger.jpeg
img_array = plt.imread('tiger.jpeg')
tiger = img_array/255
#print(tiger)

# Afficher l'image
red_tiger = tiger.copy()

red_tiger[:, :,[1,2]] = 0

plt.figure(figsize=(10,10))
plt.imshow(red_tiger)
plt.axis('off')
plt.show()

Le résultat de l'affichage est le suivant :

Autres extensions