Moin,
Die folgende Funktion ermittelt den Unterschied zwischen 2 Bildern oder Bildausschnitten.
Es wird Pixelweise vorgegangen und jweils Abs(R1 - R2) + Abs(G1 - G2) + ... = Dif für jeden Pixel berechnet und aufaddiert. Anschließend wird noch durch die Anzahl Pixel geteilt um eine "Abweichung pro Pixel" herauszubekommen.
Aus der Methode folgt:
- Minimalabweichung ist 0 (Beide Bilder sind absolut identisch)
- Maximalabweichung ist 255 * 3 = 765 (Jeder Pixel von Bild1 ist Schwarz, wenn er bei Bild2 weiß ist, und umgekehrt. Gilt auch für z.B. ein SWSWSW Muster bei Bild1 und ein WSWSWS Muster bei Bild2)
- Es können nur Bilder bzw Bildausschnitte gleicher Größe verglichen werden.
Ich weiß nicht ob das irgendwer gebrauchen kann, aber hier ist es ![]()
Anhang enthält:
- Skript mit Funktion sowie Testskript
- 2 Bilder die ich aus Google geklaut habe
Edit 02.11.2025:
AutoIt 3.3.18.0 hat irgendwas an der Calling Convention für DllCallAddress geändert. Void als Returntype wird wohl nicht mehr supported. Daher gibts hier ein Update das "mit der 3.3.18.0" funktioniert (bei mir jedenfalls).
lg
M