Avec python et la bibliothèque PIL il est possible de convertir une image couleur en niveau de gris comme dans cet exemple:
from PIL import Image
img = Image.open('lena.png').convert('LA')
img.save('greyscale.png')
Le problème quand on veut convertir une image couleur en niveau de gris est que cette conversion n'est pas unique (voir l'article de wikipedia). Il est donc intéressant de pouvoir convertir une image couleur en niveau de gris tout en agissant sur les poids relatifs sur les couleurs RGB comme dans cet exemple:
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.image as mpimg
def rgb2gray(rgb):
return np.dot(rgb[...,:3], [0.299, 0.587, 0.144])
img = mpimg.imread('lena.png')
gray = rgb2gray(img)
plt.imshow(gray, cmap = plt.get_cmap('gray'))
plt.savefig('lena_greyscale.png')
plt.show()
Références
Liens | Site |
---|---|
convert rgb image to grayscale in python | stackoverflow |
PIL | PIL |
Grayscale | Wikipedia |
Image manipulation and processing using Numpy and Scipy | Scipy Doc |
python - RGB matrix of an image | stackoverflow |
Display image as grayscale using matplotlib | stackoverflow |