无论色调/亮度如何,都使用PyAutoGUI在屏幕上定位图像

时间:2016-06-03 15:46:00

标签: python pyautogui

我正在寻找一种简单的Python方式(PyAutoGUI)来定位屏幕上某种类型的所有图像,但这里有捕获,每个图像都有不同的渐变/色调,我不想拍每个图像的屏幕截图,以便在屏幕上找到它们。

这是屏幕的区域,其中包含我试图获取坐标的图像:

正如您所看到的,每个方块都有独特的颜色(对比度)。

所以我想得到每个正方形的坐标,使PyAutoGUI只扫描一个图像。有什么方法可以让它忽略图像对比度的差异吗?就像制作黑白模式一样。

代码的工作原理:

import pyautogui
coordinates = pyautogui.locateAllOnScreen("image.png") # Returns list of coordinates of all images matching image.png

2 个答案:

答案 0 :(得分:0)

我会尝试以下方法:

pyautogui.locateOnScreen("image.png", grayscale=True)

这将忽略颜色值并简单地比较值的对比度。这具有额外的好处,即比较快30%但可能导致误报。

答案 1 :(得分:0)

我知道这已经2岁了,但对于任何像我这样的未来人类,请尝试置信度。

import pyautogui
button7location = pyautogui.locateOnScreen('calc7key.png', confidence=0.9)
button7location
Box(left=1416, top=562, width=50, height=41)

来源:https://pyautogui.readthedocs.io/en/latest/screenshot.html#the-locate-functions