2016-08-17 44 views
1

我将一个使用Sikuli作为业余爱好项目的电脑游戏自动化,希望能够让脚本帮助我完成工作。在某个小区域,(20x20像素)会出现15个字符之一。现在我将这15个图像定义为变量,然后使用ifelif循环我正在做Region.exists()。如果我的图像中有一个出现在该区域,我将赋予一个变量相应的值。在Sikuli的一个地区匹配模式很慢

我正在为屏幕上的两个区域执行此操作,然后基于脚本适当点击的字符组合。

现在的问题是运行15条if语句需要大约10秒。我希望能在接近1秒的时间内做到这一点。

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

这是一个适当的方式来做OCR?有没有更好的方法你们可以推荐?过去3年我没有做过太多的编码工作,所以我想知道OCR是否有所改善,Sikuli是否仍然是相关计划。鉴于这只是一个爱好项目,我希望坚持免费解决方案。

回答

1

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

  1. 地区和模式操作(结合区域大小)
  2. 功能设置(减少最短等待时间)
  3. 配置(修改扫描速率)

我已经更详细地描述了这个问题here

OCR仍然相当不可靠。有很多方法可以改进,但如果你只有一套有限的角色,我认为你会更好地将它们用作模式。它会更快,更可靠。

从Sikuli本身来看,该工具正处于积极的发展阶段,如果能够帮助您解决问题,它仍然是相关的。