我正在寻找一种简单的Python方式(PyAutoGUI)来定位屏幕上某种类型的所有图像,但这里有捕获,每个图像都有不同的渐变/色调,我不想拍每个图像的屏幕截图,以便在屏幕上找到它们。
这是屏幕的区域,其中包含我试图获取坐标的图像:
正如您所看到的,每个方块都有独特的颜色(对比度)。
所以我想得到每个正方形的坐标,使PyAutoGUI只扫描一个图像。有什么方法可以让它忽略图像对比度的差异吗?就像制作黑白模式一样。
代码的工作原理:
import pyautogui
coordinates = pyautogui.locateAllOnScreen("image.png") # Returns list of coordinates of all images matching image.png
答案 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