2017-04-25 3 views
0

J'essaie d'utiliser pyautogui.locateCenterOnScreen() pour trouver le point exact d'une image sur un écran, mais chaque fois que les coordonnées sont retournées, elles semblent toujours être plus grandes d'un facteur deux (c.-à-d. (2026, 722) mais est en réalité (1013, 361)). J'utilise un Macbook Pro 2016 avec Retina Display sous macOS Sierra. Des suggestions pour résoudre ce problème? Merci d'avance.PyAutoGUI localiser la commande en retournant des coordonnées incorrectes pour la reconnaissance d'image

Image Recognition Result Screenshot

Image to locate on screen

J'espère que cette capture d'écran vous aidera à résoudre mon problème.

Répondre

0

Ce n'est probablement pas un problème que vous pouvez résoudre en regardant le code ou le module que vous utilisez. Très probablement, le problème est que vous interprétez quelque chose dans le mauvais sens.

Si vous fournissez la capture d'écran et l'image que vous souhaitez y trouver, il serait beaucoup plus facile de vous aider sans avoir besoin de deviner.

+0

Salut, j'ai édité et ajouté des captures d'écran . J'espère que cela peut aider. Merci –

0

J'ai aussi ce problème avec MacBook. Je ne peux que penser que cela a à voir avec le MacBook et la façon dont il envoie des informations sur l'écran.

En tant que travail autour je viens divisant les coordonnées par 2.

0

Pyautogui utilise screencaps pour trouver l'emplacement de choses à l'écran. Le problème sur les macs avec un affichage rétine est que la sortie d'écran a le double du nombre de pixels, pour profiter de la plus grande densité de pixels du système pour une image plus nette.Par conséquent, lorsque vous prenez une capture d'écran, vous obtenez une image contenant le double de pixels que la même image d'un Mac non rétine. Je suis actuellement en train de regarder s'il est possible de redimensionner l'image et de trouver une correspondance (un pixel éteint et pas de correspondance si la recherche floue de cv2 ne fonctionne pas) source