lundi 18 décembre 2006

PIL : blibliothéque de traitement d'image pour python


Ressources

La page Officielle de la bibliothèque PIL (Python Imging Library) :
http://www.pythonware.com/products/pil/

Une mini FAQ en français :
http://python.developpez.com/faq/?page=Pil

Le manuel :
http://www.pythonware.com/library/pil/handbook/
http://effbot.org/imagingbook/image.htm (le même ailleurs)


Premiers pas : afficher une image

Le manuel contient en particulier le tutorial :
http://www.pythonware.com/library/pil/handbook/introduction.htm

Le code pour charger une image et l'afficher :

from Image import *
im = open("lena.ppm")
im.show()

J'obtiens l'erreur suivante :

sh: xv : commande introuvable

La commande
Image.show() utilise sur mon système linux "ubuntu dapper" la commande "xv" pour afficher les images. Comme XV n'est pas installé chez moi, j'ai contourné le problème en créant un lien symbolique vers un autre programme d'affichage d'image, à savoir la commande "display" (qui fait parti de ImageMagic).

ln -s /usr/bin/display /home/silene/bin/xv

Cela affiche l'image sans problème. Appuyer sur la touche "q" pour fermer.


Premiers pas : créer une image

On va créer une mini image de test en suivant l'explication donnée ici :
http://python.developpez.com/faq/?page=Pil#PilSave

En plus, on va utiliser numpy pour mettre les données sous forme d'une matrice. Le code est le suivant :

from Image import *
import numpy

im_new = new( "L", (4,5) )
print im_new.format, im_new.size, im_new.mode

data = range(1,4*5+1)
im_new.putdata(data)

mat = list( im_new.getdata() )
mat = numpy.reshape(mat, (4,5))
print mat



Aucun commentaire: