我正在使用Sikuli作为业余爱好项目自动化计算机游戏,并希望能够使脚本能够帮助我完成工作。在某个小区域中,(20x20像素)将出现15个字符中的一个。现在我将这15个图像定义为变量,然后使用if
,elif
循环我正在做Region.exists()
。如果我的某个图像出现在该区域中,我会为变量指定适当的值。
我在屏幕上的两个区域执行此操作,然后根据脚本正确点击的字符组合进行此操作。
现在的问题是运行15 if语句需要大约10秒钟。我希望能在接近1秒的时间里做出这种认可。
这些只是文字字符,但OCR功能无法可靠地读取它们,我希望接近100%的准确度。
这是进行OCR的合适方式吗?你们可以推荐一种更好的方式吗?我在过去3年里没有做过多次编码,所以我想知道OCR是否有所改进,以及Sikuli是否仍然是一个相关的程序。看来这只是一个业余爱好项目,我希望坚持免费的解决方案。
答案 0 :(得分:1)
Sikuli通过扫描屏幕或部分屏幕并尝试匹配设定模式进行操作。当然,模式越小,消耗的时间就越多。有几种方法可以改善检测时间:
我已经更详细地描述了这个问题here。
OCR仍然非常不可靠。有一些方法可以改进,但如果你只有一组有限的字符,我认为你最好将它们用作模式。它会更快,更可靠。
从Sikuli本身开始,该工具正在积极开发中,如果它可以帮助您解决问题,它仍然具有相关性。