在 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 通过扫描屏幕或屏幕的一部分并尝试匹配设置的模式来运行。自然地,模式越小,匹配它所消耗的时间就越多。有几种方法可以提高检测时间:

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

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

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

就 Sikuli 本身而言,该工具正在积极开发中,如果它能帮助您解决问题,它仍然具有相关性。