Wow - c'est une question massive, et qui a un nombre incroyable de solutions possibles. Je ne suis pas experte en python, mais j'ai trouvé ta question intéressante - donc je voulais proposer une méthode que j'implémenterais si j'étais confrontée à ce problème.
Évidemment, les deux images que vous avez postées sont en réalité très différentes - donc vous devrez considérer 'à quel point la différence est la même', surtout lorsque vous travaillez avec des images et que vous considérez différents formats d'image et la compression, etc.
Quoi qu'il en soit, pour une solution qui permet une différence donnée dans les valeurs des couleurs (mais pas pour que les pixels soient mal placés), je ferais quelque chose comme ce qui suit;
-
Choisissez deux images.
-
Redimensionnez la plus grande image à la même hauteur et largeur exactes que la première (même en déformant l'image si nécessaire).
-
Éventuellement, mettez les images en niveaux de gris pour rendre les étapes suivantes plus simples, sans perdre beaucoup en termes d'efficacité. En fait, il pourrait être intéressant d'exécuter ici une détection de bord également.
-
Passez en revue chaque pixel dans les deux images et enregistrez la différence dans chacun des canaux RGB, ou simplement la différence d'intensité en niveaux de gris. Vous obtiendriez un tableau de la taille de l'image notant la différence entre les intensités des pixels sur les deux images.
-
Maintenant, je ne connais pas les valeurs exactes, mais vous constateriez probablement ensuite que si vous itérez sur le tableau, vous pourriez voir si la différence entre chaque pixel des deux images est la même (ou presque la même) pour tous les pixels. Peut-être itérer sur le tableau une fois pour trouver la différence moyenne entre les intensités des pixels des deux images, puis itérer sur l'image à nouveau pour voir si 90% des différences se situent dans une certaine plage (différence de 5% ?).
Juste une idée. Bien sûr, il pourrait y avoir des fonctions intéressantes dont je ne suis pas au courant pour rendre cela facile, mais je ne retiendrais pas mon souffle !