PIL

Récupérer les pixels d'une image en python et comparer deux images.

Rédigé par BeHuman - - 1 commentaire

J'ai eu besoin de faire un petit script me permettant de comparer deux images. Pour se faire j'ai décidé de récupérer tout les pixels d'une image pour ensuite les traiter à ma guise (p'tain de pub).
En trainant sur la toile, je suis tombé sur un magnifique blog où j'ai trouvé mon bonheur blush ici même

 

Script python "imgcolor.py" utilisant PIL, sys, os:

#!/usr/bin/python
# -*- coding: utf-8 -*-

import sys, os
from PIL import Image

if not os.path.isfile(sys.argv[1]):
    print "ERREUR: '"+sys.argv[1]+"' n'est pas un fichier."
    exit(1)
im = Image.open(sys.argv[1], 'r')
pix_val = list(im.getdata())
pix_val_flat = [x for sets in pix_val for x in sets]
for element in pix_val_flat:
    print element
exit(0)

vous pourrez ensuite par exemple, comparer deux images via une ligne de Shell/Bash

if [[ `./imgcolor.py 001.png` == `./imgcolor.py 002.png` ]]; then echo "ok"; else echo "no"; fi

ou encore

if [[ `./imgcolor.py 001.png` == `./imgcolor.py 002.png` ]]; then
    echo "ok"
else
    echo "no"
fi

ou bien

./imgcolor.py 001.png | while read color; do
    #Traitement perso par pixel
done

vous l'aurez compris, les possibilitées sont multiple cheeky

++

GECL (Graph Editor Command Line)

Rédigé par BeHuman - - aucun commentaire

Bon voilà je viens de finir un petit script qui m'as apprit pas mal de trucs sur la PIL(Python Imaging Library).
Le but principal étant didactique j'en ai profiter pour faire une petite API pour vos script Shell, je merci AnsuzPeorth pour l'idée et toutes l'aide qu'il l'a pu m'apporter.
Bien mignon mais à quoi cela peut t'il servir? bin, tout simplement à créer, éditer des images en BASH cool non?

AnsuzPeorth:

Pourquoi ce script ?
Apres récupération du RMS d'un fichier audio, pour le tracer, plusieurs solutions, plus ou moins lourde selon, mais qui oblige souvent d'installer des paquets supplémentaires. J'ai donc simplement parlé de PIL à ckdevelopp qui est builtin python, très simple et largement suffisante pour tracer qqles lignes de tailles differentes sur un fond uni ...
De plus, ca fait un petit exercise python !

Lire la suite de GECL (Graph Editor Command Line)