Da qui
Il modo più rapido per determinare se due immagini hanno esattamente gli stessi contenuti è ottenere la differenza tra le due immagini e quindi calcolare il riquadro di delimitazione delle regioni diverse da zero in questa immagine.
Se le immagini sono identiche, tutti i pixel nell'immagine di differenza sono pari a zero e la funzione del riquadro di delimitazione restituisce Nessuno.
from PIL import ImageChops
def equal(im1, im2):
return ImageChops.difference(im1, im2).getbbox() is None
Esiste un progetto OSS che utilizza WebDriver per acquisire schermate e quindi confronta le immagini per vedere se ci sono problemi (http://code.google.com/p/fighting-layout-bugs/)). Lo fa aprendo il file in un flusso e quindi confrontando ogni bit.
Potresti riuscire a fare qualcosa di simile con PIL.
MODIFICA:
Dopo ulteriori ricerche ho trovato
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))
su http://snipplr.com/view/757/compare-two-pil-images-in-python/ e http://effbot.org/zone/pil-comparing-images.htm