etwas ähnliches habe ich vor ewigen zeiten mal für ein browserspiel geschrieben....
im video sieht man das endprodukt bei der arbeit. die logik dahinter basiert auf dem grundgedanken, das es reicht jeweils den mittelpunkt der 64 objekte auszulesen. funktionieren tut das ganze einfach über ein 2d array, welches über pixelgetcolor gefüllt wird.
sobald man das array einmalig gefüllt hat, kann man es beliebig oft mit eigenen algorithmen durchlaufen, um so eventuelle muster zu finden.
der vorteil hier liegt also darinn, das das bild nur einmal "gescannt" werden muss (was ja der sehr zeitaufwändige part ist), was zur folge hat, das danach nurnoch die sehr effiziente verarbeitung des inputs folgen muss. desweiteren muss nicht nach pixeln gesucht werden, da ihre position bereits bekannt ist. man hat in meinem beispiel so nur 8*8 pixel einzulesen anstatt die gesamtfläche von ca 160.000 pixeln ständig durchsuchen zu müssen.
Edit:
in dem beispiel spiel, haben die entwickler nach kurzer zeit eine gewisse abweichung der farben in objekten von ein und dem selben typ eingebaut, um meinen bot untauglich zu machen.
auch das war aber kein problem... ich habe einfach von jedem objekt einen durchschnitts-rgb-wert gespeichert, und dann vom aktuellen objekt jeweils die differenz zu diesem durchschnittswert berechnet. das objekt mit der geringsten abweichung war automatisch das korrekte.