Desde aquí
La forma más rápida de determinar si dos imágenes tienen exactamente el mismo contenido es obtener la diferencia entre las dos imágenes y luego calcular el cuadro delimitador de las regiones distintas de cero en esta imagen.
Si las imágenes son idénticas, todos los píxeles de la imagen de diferencia son cero y la función del cuadro delimitador devuelve Ninguno.
from PIL import ImageChops
def equal(im1, im2):
return ImageChops.difference(im1, im2).getbbox() is None
Hay un proyecto OSS que usa WebDriver para tomar capturas de pantalla y luego compara las imágenes para ver si hay algún problema (http://code.google.com/p/fighting-layout-bugs/)). Lo hace abriendo el archivo en una secuencia y luego comparando cada bit.
Es posible que pueda hacer algo similar con PIL.
EDITAR:
Después de más investigación encontré
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))
en http://snipplr.com/view/757/compare-two-pil-images-in-python/ y http://effbot.org/zone/pil-comparing-images.htm