Affichage des images en niveaux de gris avec Matplotlib
Lorsque vous travaillez avec des images à l'aide de matplotlib.pyplot.imshow(), les convertir en niveaux de gris est essentiel pour superposer des éléments avec de la couleur. Pour faciliter cette conversion, la fonction Image.open().convert("L") de PIL est couramment utilisée.
Problème
Malgré l'utilisation de PIL pour convertir une image en en niveaux de gris, son affichage avec matplotlib.pyplot.imshow() entraîne l'apparition de l'image avec une palette de couleurs au lieu de véritables niveaux de gris.
Solution
Pour résoudre ce problème, il est crucial de spécifier l'argument colormap lors de l'appel de matplotlib.pyplot.imshow(). Par défaut, matplotlib sélectionne une palette de couleurs qui peut introduire de la couleur dans l'image. Pour garantir une représentation en niveaux de gris, définissez cmap='gray' et définissez explicitement la plage de valeurs de gris en utilisant vmin=0 et vmax=255.
Exemple de code
Le code suivant L'extrait montre comment charger une image, la convertir en niveaux de gris et l'afficher :
<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, si vous préférez la représentation inverse en niveaux de gris, modifiez l'argument 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!