我正在和Sikuli做一些研究。
我发现 findText()只能匹配一些连续的字符串。(如果字符串之间有空格,它将找不到任何内容)。
例如,
screen.find(“快速访问”)将抛出查找失败的异常。
为什么会这样?
我的Sikuli版本是1.1.0。
答案 0 :(得分:1)
OCR非常不可靠。 OCR可以找到空间,而不是它总能找到的空间。错误可能在于找不到空格,或者可能是其他任何一个字母都没有被正确识别。我发现我可以在完全相同的页面上使用OCR 10次,并得出6或7种不同的结果。如果您要查找的文本是可选的,您可以将其放到剪贴板并从那里更有效地评估(如this SO answer)。
如果您必须使用OCR,有时首先放大您想要的文字有助于提高准确性。此外,您还可以让它搜索目标短语的3或4个最可能的变体。
您正在获取FindFailed,因为它找不到您的确切短语。要查看OCR 找到的内容,您可以使用:
print text() #this will print all text found in your default region (usually the entire screen)
-OR -
print myRegion.text() #to print all text in a previous defined region, myRegion.
答案 1 :(得分:0)
Tesseract定义的最小字体大小为20像素。屏幕上的典型文本高度在7到10像素之间。 Sikuli必须放大2到3倍,否则该过程将显示为“非常不可靠”。