1

我正在使用 Sikuli 作为一个爱好项目来自动化一个电脑游戏,并希望能够足够好地制作脚本来帮助我的工作。在某个小区域(20x20 像素)会出现 15 个字符之一。现在我将这 15 个图像定义为变量,然后使用我正在做的if,循环。如果我的其中一张图像出现在该区域中,我会为变量分配适当的值。elifRegion.exists()

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

现在的问题是运行 15 个 if 语句大约需要 10 秒。我希望能在接近 1 秒的时间内完成这种识别。

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

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

4

1 回答 1

1

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

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

我在这里更详细地描述了这个问题。

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

至于 Sikuli 本身,该工具正在积极开发中,如果它可以帮助您解决问题,它仍然是相关的。

于 2016-08-18T01:16:01.650 回答