Mit PIL (Python Image Library) zu erkennen, das Bild auf dem Bildschirm
Ich versuche zu verstehen, wie ich verwenden können, PIL mit Python 2.7 zu suchen, die die ganze Leinwand für ein bestimmtes Bild und klicken Sie darauf. Ich habe auf der Suche rund um und nicht in der Lage gewesen, eine Lösung zu finden. Ich möchte eine kleine GUI mit einem button in der Mitte der es, dass, wenn geklickt wird, suchen Sie den gesamten Bildschirm für eine vordefinierte Bild. Sobald das Bild gefunden ist, wird das Programm klicken Sie dann auf in der Mitte und am Ende. Kurz gesagt, das Programm erkennt automatisch, ob ein Bild vorhanden ist auf dem Benutzer-Bildschirm und klicken Sie darauf.
Habe ich ein Interessantes Stück auf Sikuli, aber das hilft mir nicht, weil es nicht in der Lage zu exportieren .exe.
Dem Bild, dass das Programm Aussehen wird, wird wahrscheinlich an der gleichen Stelle jedes mal, wenn er sucht, aber ich wollte nicht zu hart-code die Lage, da es das Potenzial hat, sich zu bewegen und ich möchte nicht, dass ein Thema später auf.
Was ich brauche ist der code der Methode, die ich verwenden würde, um die Suche für die Bild auf dem Bildschirm und schicken Sie die Schnüre auf eine variable.
Bild Erklärung/Beispiel:
Referenz-Bild der Waffe:
Ja, es wird anders sein. Etwa um die gleiche Größe.
Suche für ein genaues Bild ist leicht. Die Suche nach einem ähnlichen Bild erfordert einen bilderkennungs-Algorithmus und ist wesentlich härter.
Nein, es wird genau die gleiche sein Bild jedes mal. Ich zeigte auf das Gewehr, weil ich noch nicht gemacht, das andere noch nicht.
auch wenn es dasselbe Bild, wenn es von der unterschiedlichen Größe, es wäre schwierig und erfordern mehr komplizierte algorithmen
InformationsquelleAutor Freddie | 2014-12-07
Du musst angemeldet sein, um einen Kommentar abzugeben.
PIL ist das falsche Werkzeug für diese Aufgabe. Stattdessen sollte man schauen, in openCV (open source computer vision), die fantastische python-bindings. Hier ist ein link zu einem Beispiel (in C, aber sollte leicht zu wiederholen mit den python-bindings), die tut, was Sie suchen, für, aber, auch kann das Bild rotiert, skaliert, etc. werden.
http://docs.opencv.org/doc/tutorials/features2d/feature_homography/feature_homography.html
http://docs.opencv.org/doc/tutorials/features2d/detection_of_planar_objects/detection_of_planar_objects.html
Edit:
Ich nehme an, dass du windows nutzt, als dein Beispiel-Bild sieht aus wie Fenster. In diesem Fall können Sie verwenden:
dann verwenden opencv, um das Bild zu finden, sub-Bild die Sie suchen.
Wenn Sie dies tun möchten und cross-Plattform -, dann werden Sie brauchen, um wxWidgets verwenden zu tun, die screengrab: https://stackoverflow.com/a/10089645/455532
ammended Antwort oben
Könntest du etwas mehr ins detail gehen, wie ich es verwenden können, um die Suche dem Bildschirm. Ich habe echte Probleme.
InformationsquelleAutor Kyle