gpt4 book ai didi

python - PyAutoGUI 图像识别 - 像素颜色匹配的小问题

转载 作者:太空宇宙 更新时间:2023-11-03 15:19:07 25 4
gpt4 key购买 nike

我试图通过使用 PyAutoGUI 的图像识别功能(pyautogui.locateCenterOnScreen)来识别简单的“确定”按钮来阻止我的机器人程序中可能出现的阻止,以消除可能的阻止阻止错误消息。然而,该功能有时只能工作,正如我通过截取不同错误消息并并排比较像素颜色发现的那样。我发现的结果是,两个不同的“确定”按钮上的像素颜色通常相差 1,这解释了图像识别函数大多数时候返回 None。我希望即使颜色相差 1 或 2 个像素也能识别图像。我知道有 tolerance 关键字参数,但是按钮的位置在屏幕上发生变化,导致很难使用 getpixel 函数,并且不能使用 tolerancelocateCenterOnScreen(据我了解)。关于我如何解决这个问题有什么建议吗?提前致谢。

最佳答案

尝试下面的方法(参见此处:http://pyautogui.readthedocs.io/en/latest/screenshot.html)

enter image description here

从评论中我知道您已经尝试过,但这并没有解决您案例中的问题。

另一个有用的想法是,将按钮的图像裁剪到在屏幕上找到它所需的绝对最小值。通常靠近中心的颜色比阴影更“稳定”。

从评论中我知道,这也没有解决您的问题。

您是否允许在您的操作系统中使用 Windows 的透明度(透明度是指您可以通过当前应用程序显示的内容“看到”该应用程序窗口背景中的内容 - 是一项功能最新操作系统的许多版本中的默认值)?

从评论中我知道你是这样的。

这可能会导致严重的识别问题。降低(到什么程度?)透明度并不能解决问题,这意味着唯一正确的方法是:

Switch the transparency feature OFF to get stable colors

就是这样 - 问题已解决(如何为您的特定系统做到这一点是另一个与图像识别主题无关的问题)。

上述所有或一个应该可以解决您的问题,如果不能,您可能会被迫使用 pyautogui 旁边的另一种图像处理工具进行自己的图像识别。

附录:[确定]按钮的形状和颜色可能取决于很多因素。如果在 Internet 浏览器中显示,它可以通过调整页面大小来更改其大小。如果用户对话框是由不同的应用程序创建的,并且应用程序不使用系统标准,则 [确定] 按钮的形状和颜色也可能不同。如上所述,如果系统使用透明度功能,颜色可能会有所不同。

关于python - PyAutoGUI 图像识别 - 像素颜色匹配的小问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43654009/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com