Maison  >  Article  >  développement back-end  >  Comment afficher correctement les images en niveaux de gris dans Matplotlib ?

Comment afficher correctement les images en niveaux de gris dans Matplotlib ?

Barbara Streisand
Barbara Streisandoriginal
2024-10-31 04:41:01768parcourir

How to Display Grayscale Images Correctly in Matplotlib?

Affichage des images en niveaux de gris

De nombreuses tâches de manipulation d'images nécessitent souvent des images en niveaux de gris pour faciliter le traitement. L'affichage d'images en niveaux de gris à l'aide de la fonction imshow() de Matplotlib peut être difficile lorsque l'image est accidentellement rendue sous forme de palette de couleurs.

Pour résoudre ce problème et afficher correctement une image en niveaux de gris, suivez ces étapes :

  1. Importez les bibliothèques nécessaires : Chargez des bibliothèques importantes telles que NumPy pour le traitement d'images, Matplotlib pour le traçage et PIL pour l'image manipulation.
  2. Lire et convertir l'image en niveaux de gris : Utilisez la fonction Image.open() de PIL pour lire l'image à partir d'un fichier. Ensuite, convertissez l'image en niveaux de gris à l'aide de convert("L").
  3. Convertir l'image en matrice : Transformez l'image en niveaux de gris en une matrice numérique à l'aide de scipy.misc.fromimage() de SciPy.
  4. Spécifier l'affichage en niveaux de gris : Lors de l'affichage de la matrice à l'aide de matplotlib.pyplot.imshow(), explicitement spécifiez la palette de couleurs comme « gris » pour rendre l'image en niveaux de gris. Ajustez les paramètres « vmin » et « vmax » pour définir la plage de valeurs des intensités de niveaux de gris.
<code class="python">import numpy as np
import matplotlib.pyplot as plt
from PIL import Image

fname = 'image.png'
image = Image.open(fname).convert("L")
arr = np.asarray(image)
plt.imshow(arr, cmap='gray', vmin=0, vmax=255)
plt.show()</code>

Alternativement, pour afficher les niveaux de gris inverses, modifiez simplement le paramètre cmap en « gray_r ».

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn