Tesseract用户模式

kha*_*yen 13 tesseract

任何人都知道如何在Tesseract中使用用户模式(user_patterns_suffix)?你能告诉我如何处理它以及如何测试它的工作原理吗?我试图遵循Tesseract指南(Tessearct用户模式但我没有看到它影响结果.

谢谢.

小智 19

Tesseract使用一种模式来表达一种"正则表达式".如果我们假设您正在扫描具有相同格式的数据的书籍,则可以使用它.一个模式可以用来告诉Tesseract期望什么格式,如何期望用户词中的单词.以下是Tesseract如何描述如何使用模式:

每个模式都可以包含任何非空白字符,但只有包含相应语言的unicharset字符的模式才有用.

唯一的元字符是\.要在模式中用作普通字符串,它应该被转义\(例如,字符串C:\Documents应该在模式文件中写入C:\\Documents).

此函数支持非常有限的正则表达式语法.可以表达一个字符,一个特定的字符类以及该模式中应该重复该实体的次数.

要表示字符类,请使用以下方法之一:

  • \c- unichar UNICHARSET::get_isalpha()是真的(字符)
  • \d- unichar UNICHARSET::get_isdigit()是真的
  • \n- unichar,其中UNICHARSET::get_isdigit()UNICHARSET::isalpha()是真的
  • \p- unichar UNICHARSET::get_ispunct()是真的
  • \a- unichar UNICHARSET::get_islower()是真的
  • \A- unichar UNICHARSET::get_isupper()是真的

\* 可以在每个字符或模式之后指定,以指示在下一个字符/模式出现之前字符/模式可以重复任何次数.

例子:

1-8\d\d-GOOG-411将扩大到字符串: 1-800-GOOG-411,1-801-GOOG-411,... 1-899-GOOG-411.

"ww.\n\*.com"将扩展为如下字符串: "ww.a.com" "ww.a123.com"..."ww.ABCDefgHIJKLMNop.com"

注意:在选择要包含的模式时,请注意提供非常通用的模式会使tesseract运行速度变慢的事实.例如\n\*,在模式的开头将使Tesseract考虑每个分段的所提议的字符选择的所有组合,这将是不可接受的慢.由于速度的潜在问题可能难以识别,因此每个用户模式必须至少kSaneNumConcreteChars具有来自unicharset开头的具体字符.

  • 这并没有具体说明*如何*使用模式 (2认同)