J'essaie d'afficher une image en niveaux de gris en utilisant matplotlib.pyplot.imshow(). Mon problème est que l'image en niveaux de gris est affichée comme une carte de couleurs. J'ai besoin de l'échelle de gris parce que je veux dessiner sur le dessus de l'image avec la couleur.Afficher l'image en niveaux de gris en utilisant matplotlib
Je lis dans l'image et les convertir en niveaux de gris en utilisant Image.open de PIL(). Convertir (« L »)
image = Image.open(file).convert("L")
Puis-je convertir l'image à une matrice afin que je puisse le faire facilement un certain traitement de l'image en utilisant
matrix = scipy.misc.fromimage(image, 0)
Cependant, quand je fais
figure()
matplotlib.pyplot.imshow(matrix)
show()
il affiche l'image en utilisant une carte de couleurs (c.-à-d. ce n'est pas en niveaux de gris).
Qu'est-ce que je fais mal ici? Essayez d'utiliser une palette de couleurs en niveaux de gris?
@jay: Par [cette chaîne doc] (http: // matplotlib.org/examples/color/colormaps_reference.html), "Notez que n'importe quelle palette de couleurs répertoriée ici peut être inversée en ajoutant' _r'. " – unutbu
Attention matplotlib ajuster l'intensité de l'échelle des pixels si vous ne voulez pas utiliser: 'plt.imshow (im_gray, cmap = 'gris', vmin = 0, vmax = 255)' – themadmax