Lorsque j'ai essayé de convertir l'image en niveaux de gris en utilisant:
from skimage.io import imread
from skimage.color import rgb2gray
mountain_r = rgb2gray(imread(os.getcwd() + '/mountain.jpg'))
#Plot
import matplotlib.pyplot as plt
plt.figure(0)
plt.imshow(mountain_r)
plt.show()
J'ai une image colorée bizarre au lieu d'une échelle de gris.
L'implémentation manuelle de la fonction me donne également le même résultat. La fonction personnalisée est:
def rgb2grey(rgb):
if len(rgb.shape) is 3:
return np.dot(rgb[...,:3], [0.299, 0.587, 0.114])
else:
print 'Current image is already in grayscale.'
return rgb
Image colorée qui n'est pas en niveaux de gris.
Pourquoi la fonction ne convertit-elle pas l'image en niveaux de gris?
L'image résultante est en niveaux de gris. Cependant, imshow
, par défaut, utilise une sorte de carte thermique (appelée vidris) pour afficher les intensités de l'image. Spécifiez simplement la palette de couleurs en niveaux de gris comme indiqué ci-dessous:
plt.imshow(mountain_r, cmap="gray")
Pour toutes les cartes de couleurs possibles, consultez la référence de la carte de couleurs .