N'hésitez pas à remplir le formulaire pour nous contacter par courriel. Tous les champs sont obligatoires.

Votre nom ou pseudo

Votre adresse e-mail (facultatif)


Contenu de votre message


Entrez le code de validation    7QG4T


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

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

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 

++

3 commentaires

#1  - Juman Cherifi a dit :

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

Répondre
#2  - débutante en Python! a dit :

heyheyhey
j'aimerais des images en python, donc j'ai presque comme toi mais avec get.pixel donc je présume que c'est similaire.
ma question c'est comment on fait pour lire ce qu'on a trouvé comme résultat? (les valeurs des pixels trouvés ? pour ensuite les comparer les unes au autres pour faire des seuils de pourcentage et tout... )
MERCIIIIII big_smile

Répondre
#3  - BeHuman a dit :

Salut !
la sortie "print element" du script ci-dessus te retourne tout les pixels les un après les autres, grâce à la boucle "for element in pix_val_flat". Tu as simplement à comparer la variable "element" wink ++

Répondre

Fil RSS des commentaires de cet article

Écrire un commentaire


Capcha
Entrez le code de l'image tnlnj