Comment afficher une image en niveaux de gris dans Matplotlib

Suraj Joshi 30 janvier 2023
  1. matplotlib.pyplot.imshow() pour afficher une image en niveaux de gris dans Matplotlib
  2. Exemples : Matplotlib affiche l’image en niveaux de gris
Comment afficher une image en niveaux de gris dans Matplotlib

Pour afficher une image en niveaux de gris en utilisant Matplotlib, nous utilisons matplotlib.pyplot.imshow() avec les paramètres cmap réglés sur 'gray', vmin réglé sur 0 et vmax réglé sur 255. Par défaut, la valeur de cmap, vmin et vmax est réglée sur None.

matplotlib.pyplot.imshow() pour afficher une image en niveaux de gris dans Matplotlib

matplotlib.pyplot.imshow(X,
                         cmap=None,
                         norm=None,
                         aspect=None,
                         interpolation=None,
                         alpha=None,
                         vmin=None,
                         vmax=None,
                         origin=None,
                         extent=None,
                         shape= < deprecated parameter > ,
                         filternorm=1,
                         filterrad=4.0,
                         imlim= < deprecated parameter > ,
                         resample=None,
                         url=None,
                         *,
                         data=None,
                         **kwargs)

Exemples : Matplotlib affiche l’image en niveaux de gris

import matplotlib.pyplot as plt
import matplotlib.image as img

image = img.imread("lena.jpg")

plt.imshow(image[:, :, 1], cmap="gray", vmin=0, vmax=255, interpolation="none")
plt.show()

Production:

Matplotlib affiche l&rsquo;image en niveaux de gris

Cette méthode lit l’image lena.jpg, qui est une image RGB utilisant la fonction imread() du module matplotlib.image. Pour afficher l’image en niveaux de gris, nous n’avons besoin que d’un canal de couleur. Donc pour l’étape suivante, il suffit de prendre un seul canal de couleur et d’afficher l’image en utilisant la méthode plt.imshow() avec cmap réglé sur 'gray', vmin réglé sur 0, et vmax réglé sur 255.

Enfin, nous utilisons la méthode show() pour afficher une fenêtre affichant l’image en niveaux de gris. Pour exécuter le script ci-dessus, nous devons avoir lena.jpg dans notre répertoire de travail actuel.

Prendre un seul canal de couleur n’est pas un moyen approprié pour convertir des images RVB en images en niveaux de gris car nous avons des algorithmes spécifiques pour rendre la conversion plus efficace. Ces algorithmes sont implémentés dans presque toutes les bibliothèques de traitement d’images disponibles. Ci-dessous, nous présentons un exemple utilisant le PIL.

import numpy as np
import matplotlib.pyplot as plt
from PIL import Image

image = Image.open("lena.jpg")
gray_image = image.convert("L")
gray_image_array = np.asarray(gray_image)
plt.imshow(gray_image_array, cmap="gray", vmin=0, vmax=255)
plt.show()

Production:

Matplotlib affiche l&rsquo;image en niveaux de gris en utilisant le module d&rsquo;image

Ici, nous lisons l’image lena.jpg dans notre répertoire de travail actuel en utilisant la fonction open() et nous convertissons ensuite l’image en niveaux de gris en utilisant la méthode convert() avec 'L' comme argument. Ensuite, nous convertissons l’image en niveaux de gris dans un tableau NumPy et nous affichons l’image en utilisant la méthode imshow().

Auteur: Suraj Joshi
Suraj Joshi avatar Suraj Joshi avatar

Suraj Joshi is a backend software engineer at Matrice.ai.

LinkedIn

Article connexe - Matplotlib Images