在Sikuli中匹配区域中的模式非常慢

时间:2016-08-17 21:45:52

标签: python automation ocr sikuli sikuli-ide

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

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

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

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

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

1 个答案:

答案 0 :(得分:1)

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

  1. 区域和模式操作(绑定区域大小)
  2. 功能设置(减少最短等待时间)
  3. 配置(修改扫描速率)
  4. 我已经更详细地描述了这个问题here

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

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