Python: 如何使用 pyautogui lib 在屏幕上找到图像?

Python: How can I find an image on screen by using: pyautogui lib?

密码是:

import pyautogui
startButton = pyautogui.locateOnScreen('start.png')
print startButton

或者:

import pyautogui
startButton = pyautogui.locateCenterOnScreen('start.png')
print startButton

输出为:

None

注意:根据 documentation

似乎有正确的语法

注意:我也尝试过使用图像完整路径。图像在屏幕上并且没有被其他图像重叠。还安装了 pil 库。其他 pyautogui 功能可用(包括截图)

请让我知道我错过了什么。或者请推荐另一个用于图像检测的 Python 库。

None 表示 PyAutoGui 无法在屏幕上找到您的图像,确保 window 在 [ 处打开=12=]Start.png 是从中采样的,并且分辨率 [从您采样时和当前显示器] 是相同的。

我有一个非常类似的问题。对我来说,解决方案是使用 python 2.7 而不是 3.x。这可能是由于 python 3 的功能不太灵活。我更喜欢使用它并且 pyautogui 工作得非常好。在安装 pyautogui 时必须安装的 pillow 模块(或通常称为 PIL),但是使用 python 3.

时似乎功能较少

这是我为此使用的语法:

import pyautogui
start = pyautogui.locateCenterOnScreen('start.png')#If the file is not a png file it will not work
print(start)
pyautogui.moveTo(start)#Moves the mouse to the coordinates of the image

如果您同时使用多台显示器,它只会扫描 主要 一台。

此程序会扫描您屏幕的像素,并将像素与您的 PNG 文件进行颜色匹配。如果图像颜色(图像的阴影、图像正在改变颜色等)以任何方式发生变化,它将回复 "None"。

据我了解,可以通过将图像转为 RGB 来解决此问题。代码看起来像这样:

import pyautogui
from PIL import Image

im1=pyautogui.screenshot()
im2=pyautogui.screenshot("newone.png")
image.open("newone.png").convert("RGB").save("newone.png")

你需要把图片的整个路径放在pyautogui.locateCenterOnScreen()里,像这样:

pyautogui.locateCenterOnScreen('C:/Users/User/Desktop/start.png') 

这对我有用。您可能还想在该命令前添加 x_cord, y_cord =,以便稍后使用它。

尝试安装 opencv 并降低信心。这对我有用

import pyautogui
startButton = pyautogui.locateOnScreen('start.png', confidence = 0.7)
print(startButton)