Compare Images in Python

Viewed 35111

I need to compare two images that are screenshots of a software. I want to check if the two images are identical, including the numbers and letters displayed in the images. How can this be accomplished?

4 Answers

For anyone who stumbles upon this and for whom the accepted answer did not work, I'm posting this here.

I had a similar scenario where I needed to compare one image with thousands of others and find the one that was the closest resembling. I ended up starting off with ImageChop's difference function and applying a mean like so :

import numpy as np

def calcdiff(im1, im2):
    dif = ImageChops.difference(im1, im2)
    return np.mean(np.array(dif))

By turning the difference image into an array I'm able to calculate the mean difference. The lower the difference the more closer the image compared was to the original.


Note: Another approach that worked on near to complete resemblance is to convert the ImageChops.difference(im1, im2) to a numpy array and then to substract exact match pixels [0, 0, 0] to the array. Then by calculating the len() of the array we obtain a score which allows us to differentiate between the images. The closest one being the one with the smallest score

Related