Von hier
Der schnellste Weg, um festzustellen, ob zwei Bilder genau denselben Inhalt haben, besteht darin, die Differenz zwischen den beiden Bildern zu ermitteln und dann den Begrenzungsrahmen der Nicht-Null-Bereiche in diesem Bild zu berechnen.
Wenn die Bilder identisch sind, sind alle Pixel im Differenzbild Null und die Begrenzungsrahmenfunktion gibt None zurück.
from PIL import ImageChops
def equal(im1, im2):
return ImageChops.difference(im1, im2).getbbox() is None
Es gibt ein OSS-Projekt, das WebDriver verwendet, um Screenshots zu machen und dann die Bilder vergleicht, um zu sehen, ob es Probleme gibt (http://code.google.com/p/fighting-layout-bugs/)). Dazu wird die Datei in einem Stream geöffnet und dann jedes Bit verglichen.
Möglicherweise können Sie mit PIL etwas Ähnliches tun.
BEARBEITEN:
Nach mehr Recherche fand ich
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))
auf http://snipplr.com/view/757/compare-two-pil-images-in-python/ und http://effbot.org/zone/pil-comparing-images.htm