如何在Python中快速定位屏幕上的内容?

2024-05-15 18:17:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我尝试过使用pyautogui模块和在屏幕上定位图像的函数

pyautogui.locateOnScreen()

但它的处理时间大约是5-10秒。有没有其他方法可以让我更快地在屏幕上找到图像?基本上,我想要一个更快版本的locateOnScreen()。在


Tags: 模块方法函数定位图像版本屏幕时间
2条回答

如果您正在寻找图像识别,您可以使用Sikuli。检查Hello World tutorial。在

official documentation显示在1920x1080屏幕上需要1-2秒,因此您的时间似乎有点慢。我会尽量优化:

  • 除非颜色信息很重要,否则使用灰度(grayscale=True应该能提供30%的加速)
  • 使用一个较小的图像来定位(就像只有一个零件,如果这已经是唯一的标识您需要得到的位置)
  • 不要每次更新时都从文件中加载需要查找的图像,而是将其保存在内存中
  • 如果您已经知道可能的位置(例如,从以前的运行中获得的信息),请传入一个region参数

所有这些都在上面链接的文档中进行了描述。在

是不是还不够快你可以检查一下sources of pyautogui,看屏幕上的定位使用了一个特定的算法(Knuth-Morris-Pratt搜索算法)在Python中实现。所以在C中实现这一部分,可能会导致相当明显的加速。在

相关问题 更多 >