Maison  >  Article  >  développement back-end  >  Comment afficher correctement les images en niveaux de gris avec la fonction `imshow()` de Matplotlib ?

Comment afficher correctement les images en niveaux de gris avec la fonction `imshow()` de Matplotlib ?

DDD
DDDoriginal
2024-10-28 20:35:02154parcourir

How to Display Grayscale Images Correctly with Matplotlib's `imshow()` Function?

Chargement et affichage d'images en niveaux de gris avec Matplotlib

La conversion d'une image en niveaux de gris implique la suppression de ses informations de couleur, ce qui donne une image avec des nuances de gris . Bien que Matplotlib fournisse la fonction imshow() pour afficher les images, il peut afficher par erreur des images en niveaux de gris à l'aide d'une carte de couleurs, ce qui introduit des couleurs indésirables.

Pour remédier à cela, il est crucial de spécifier l'argument cmap dans imshow() pour 'gris'. Cela demande à Matplotlib d'utiliser une carte de couleurs en niveaux de gris, garantissant que l'image est affichée dans des nuances de gris. De plus, définir les paramètres vmin et vmax sur les valeurs minimale et maximale des intensités de pixels, respectivement, garantit que les valeurs en niveaux de gris sont correctement représentées.

Voici un exemple de code qui démontre cela :

<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>

Ce code lit une image à partir d'un fichier nommé « image.png », la convertit en niveaux de gris et affiche l'image en niveaux de gris à l'aide de la fonction imshow() de Matplotlib avec la carte de couleurs en niveaux de gris correcte. En utilisant cette approche, vous pouvez afficher avec succès des images en niveaux de gris sans rencontrer de problèmes de carte de couleurs.

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