Obtenir une matrice RGB à partir d'une image avec python

Published: 18 août 2014

DMCA.com Protection Status

Avec python il est relativement direct d'obtenir une matrice RGB à partir d'une image en passant par imread du module misc de scipy (voir Image manipulation and processing using Numpy and Scipy et python - RGB matrix of an image). Exemple avec l'image lena.png:

>>> from scipy import misc
>>> M = misc.imread('lena.png')
>>> type(M)
<type 'numpy.ndarray'>

Une fois l'image transposée sous forme de matrice intitulée ici M, il est alors possible d'obtenir d'autres informations comme:

>>> M.shape
(512, 512, 3)
>>> M.dtype
dtype('uint8')
>>> M[200,100,:]
array([175,  59,  69], dtype=uint8)
>>> M.max()
255
>>> M.min()
3

La matrice M est de forme (512, 512, 3), la dimension 3 correspondant au code RGB (Red: Rouge, Green: Vert, Blue: Bleu) dont les valeurs min et max sont dans le cas de cette image entre 3 et 255. Le code RGB pour le pixel (200,100) est de (175, 59, 69). Note: il est possible de faire quelque chose de similaire en passant par le module PIL:

>>> import numpy as np
>>> from PIL import Image
>>> img = Image.open('lena.png')
>>> img
<PIL.PngImagePlugin.PngImageFile image mode=RGB size=512x512 at 0x4581D00>
>>> M = np.array(img)

Recherches associées