9

代码是:

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

或者:

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

输出是:

None

注意:根据文档,正确的语法似乎已经到位。

注意:我也尝试过使用图像完整路径。图像在屏幕上,不与其他图像重叠。pil 库也已安装。其他pyautogui功能有效(包括截图)

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

4

6 回答 6

14

这是我用于此的语法:

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 文件进行颜色匹配。如果图像颜色(图像的阴影,图像正在改变颜色等)以任何方式发生变化,它将回复“无”。

于 2016-04-15T19:43:03.003 回答
4

无意味着PyAutoGui无法在屏幕上找到您的图像,请确保从Start.png采样的窗口打开,并且分辨率 [从您获取样本时和当前监视器开始] 相同。

于 2015-10-30T15:27:02.880 回答
3

据我了解,可以通过将图像转换为 RGB 来解决此问题。代码将如下所示:

import pyautogui
from PIL import Image

im1=pyautogui.screenshot()
im2=pyautogui.screenshot("newone.png")
image.open("newone.png").convert("RGB").save("newone.png")
于 2017-11-01T22:09:51.087 回答
1

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

import pyautogui
startButton = pyautogui.locateOnScreen('start.png', confidence = 0.7)
print(startButton)
于 2020-07-05T15:36:38.383 回答
1

您需要将图像的整个路径放入 中pyautogui.locateCenterOnScreen(),如下所示:

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

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

于 2020-03-13T16:29:28.383 回答
-2

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

于 2016-03-01T09:58:38.197 回答