Sikuli的Tesseract仅支持单个单词吗?

时间:2014-12-23 02:57:57

标签: java tesseract sikuli

我正在和Sikuli做一些研究。

我发现 findText()只能匹配一些连续的字符串。(如果字符串之间有空格,它将找不到任何内容)。

例如,

screen.find(“快速访问”)将抛出查找失败的异常。

为什么会这样?

我的Sikuli版本是1.1.0。

2 个答案:

答案 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倍,否则该过程将显示为“非常不可靠”。