D'ici
Le moyen le plus rapide de déterminer si deux images ont exactement le même contenu est d'obtenir la différence entre les deux images, puis de calculer la boîte englobante des régions non nulles de cette image.
Si les images sont identiques, tous les pixels de l'image de différence sont nuls et la fonction de cadre de délimitation renvoie Aucun.
from PIL import ImageChops
def equal(im1, im2):
return ImageChops.difference(im1, im2).getbbox() is None
Il existe un projet OSS qui utilise WebDriver pour prendre des captures d'écran, puis compare les images pour voir s'il y a des problèmes (http://code.google.com/p/fighting-layout-bugs/)). Il le fait en ouvrant le fichier dans un flux, puis en comparant chaque bit.
Vous pourrez peut-être faire quelque chose de similaire avec PIL.
MODIFIER :
Après plus de recherches, j'ai trouvé
h1 = Image.open("image1").histogram()
h2 = Image.open("image2").histogram()
rms = math.sqrt(reduce(operator.add,
map(lambda a,b: (a-b)**2, h1, h2))/len(h1))
sur http://snipplr.com/view/757/compare-two-pil-images-in-python/ et http://effbot.org/zone/pil-comparing-images.htm