代码是:
import pyautogui
startButton = pyautogui.locateOnScreen('start.png')
print startButton
或者:
import pyautogui
startButton = pyautogui.locateCenterOnScreen('start.png')
print startButton
输出结果为:
None
注意:根据documentation
,似乎存在正确的语法注意:我也尝试过图像完整路径。图像在屏幕上,并且不与其他图像重叠。 pil库也已安装。其他pyautogui
功能可以使用(包括截屏)
请让我知道我错过了什么。或者请建议另一个用于图像检测的Python库。
答案 0 :(得分:3)
无表示 PyAutoGui 无法在屏幕上找到您的图片,请确保该窗口处于打开状态,其中 Start.png 已被采样从[和你拿样本和当前监视器]的决议是一样的。
答案 1 :(得分:2)
以下是我用于此的语法:
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文件的像素匹配。如果图像颜色(图像的阴影,图像正在改变颜色等)以任何方式改变,它将以“无”回复。
答案 2 :(得分:0)
据我所知,可以通过将图像转换为RGB来解决问题。代码看起来像这样:
import pyautogui
from PIL import Image
im1=pyautogui.screenshoot()
im2=pyautogui.screenshoot("newone.png")
image.open("newone.png").convert("RGB").save("newone.png")
答案 3 :(得分:0)
您需要将图像的整个路径放在pyautogui.locateCenterOnScreen()
中,如下所示:
pyautogui.locateCenterOnScreen('C:/Users/User/Desktop/start.png')
这对我有用。您可能还想在该命令前添加x_cord, y_cord =
,以便以后使用。
答案 4 :(得分:0)
尝试安装opencv并降低信心。对我有用
import pyautogui
startButton = pyautogui.locateOnScreen('start.png', confidence = 0.7)
print(startButton)
答案 5 :(得分:-1)
我有一个非常类似的问题。对我来说,解决方案是使用python 2.7而不是3.x.它可能是由于python 3的功能不太灵活所致。我更喜欢使用它,而pyautogui的工作非常出色。安装pyautogui时必须安装的枕头模块(或通常称为PIL),但使用python 3的功能似乎较少。