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

++

1 commentaire

#1 Juman Cherifi a dit :

winkcool:lol:;-):-|:-);-):-/

Écrire un commentaire


Capcha
Entrez le code de l'image :