Hey Leute, ich brauche mal etwas Hilfe.
Ich versuche momentan (nur als Beispiel) von einem Screenshot ein subimage(template) rauszusuchen (mithilfe von template matching) und mir die gefundenen Koordinaten dann zu nutze zu machen, indem ich die Maus an diese entsprechende Position bringe.
Die Sache ist, obwohl das Template gefunden wird und ich die entsprechenden Koordinaten habe, wird die Maus nicht an die entsprechende Position gebracht.
Ein paar zusätzliche Informationen: Ich habe eine Bildschirmauflösung von 1920x1080. Der Screenshot hat die entsprechende Größe. Aus diesem Screenshot habe ich nun einen Teil ausgeschnitten und nun mittels template matching die Koordinaten rausgesucht und auch entsprechend gefunden. Die Maus wird allerdings an eine komplett andere Position gebracht.
Hier ist der entsprechende Quellcode dazu:
import cv2
import win32api
img = cv2.imread("google_homepage.png", 1)
template = cv2.imread("google_g.png", 1)
w, h = template.shape[0:2]
result = cv2.matchTemplate(img, template, cv2.TM_CCOEFF_NORMED)
print (cv2.minMaxLoc(result))
max_loc = cv2.minMaxLoc(result)[3]
bottom_right = (max_loc[0] + w, max_loc[1] + h)
cv2.rectangle(img, max_loc, bottom_right, 255, 2)
cv2.namedWindow("Test", cv2.WINDOW_NORMAL)
cv2.imshow("Test", img)
win32api.SetCursorPos(max_loc)
cv2.waitKey()
Was ich hier genau versuche, ist die Position von dem großen G von Google zu finden und meine Maus auf diese Position zu bringen. Das das G gefunden wird, zeigt dieser Screenshot hier:
http://img5.fotos-hochladen.net/uploads/example1bujfpzih5x.png
Wie man hier sieht, wird das G entsprechend eingerahmt und max_loc sollte die korrekten Koordinaten enthalten.
Setze ich aber nun den Cursor mittels win32api.SetCursorPos(max_loc), wird dieser zwischen dem g und l gebracht (gekennzeichnet durch das kleine schwarze Kästchen)
img5.fotos-hochladen.net/uploads/example2emqk598hup.png
Hoffe mir kann hier jemand helfen, da ich offensichtlich irgendwo einen Denkfehler habe.