关于python:在Sikuli中匹配区域中的模式非常慢

Matching a Pattern in a Region in Sikuli is very slow

我正在使用Sikuli作为业余爱好项目自动化计算机游戏,希望能够很好地制作脚本来帮助我完成工作。在某个小区域中,(20x20像素)将出现15个字符中的一个。现在我将这15个图像定义为变量,然后使用ifelif循环我正在做Region.exists()。如果我的某个图像出现在该区域中,我会为变量指定适当的值。

我在屏幕上的两个区域执行此操作,然后根据脚本适当单击的字符组合。

现在的问题是运行15 if语句需要大约10秒。我希望能在接近1秒的时间里做出这种认可。

这些只是文本字符,但OCR功能无法可靠地读取它们,我希望接近100%的准确性。

这是进行OCR的合适方式吗?你们可以推荐一种更好的方式吗?我在过去的3年里没有做太多的编码,所以我想知道OCR是否有所改进,以及Sikuli是否仍然是一个相关的程序。看来这只是一个业余爱好项目,我希望坚持免费的解决方案。


Sikuli通过扫描屏幕或部分屏幕并尝试匹配设定模式来进行操作。 当然,模式越小,消耗的时间就越多。 有几种方法可以改善检测时间:

  • 区域和模式操作(绑定区域大小)
  • 功能设置(减少最短等待时间)
  • 配置(修改扫描速率)
  • 我在这里更详细地描述了这个问题。

    OCR仍然非常不可靠。 有一些方法可以改进,但如果你只有一组有限的字符,我认为你最好将它们用作模式。 它会更快,更可靠。

    从Sikuli本身开始,该工具正在积极开发中,如果它可以帮助您解决问题,它仍然具有相关性。