Convertir une image couleur en niveau de gris avec python

Published: 01 octobre 2014

DMCA.com Protection Status

Avec python et la bibliothèque PIL il est possible de convertir une image couleur en niveau de gris comme dans cet exemple:

Convertir une image couleur en niveau de gris avec python. Convertir une image couleur en niveau de gris avec python.
Convertir une image couleur en niveau de gris avec python.

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