2013-06-20 106 views
11

任何人都知道如何在Tesseract中使用用戶模式(user_patterns_suffix)? 你能否告訴我如何處理它以及如何測試它的工作?我試圖按照正方體指南(Tessearct user-patterns,但我沒有看到它影響了結果的。Tesseract用戶模式

感謝。

+0

您是否嘗試添加'bazaar'配置文件?請參閱[tesseract(1)](http://tesseract-ocr.googlecode.com/svn/trunk/doc/tesseract.1.html#_config_files_and_augmenting_with_user_data) – pvorb

回答

16

正方體使用模式AA排序「正則表達式」的,它可以使用,如果讓說你掃描一本書的數據,這是所有在同一格式的模式可以被用來告訴正方體會發生什麼格式,IKE如何指望在用戶的單詞下面是如何Tesseract describes how to use patterns:。

每個模式可以包含任何非空白字符,但是隻有包含來自相應語言unicharset的字符的模式纔會有用。

唯一的元字符是\。要以普通字符串的形式使用,應該使用\(例如,字符串C:\Documents應該寫入模式文件C:\\Documents)轉義。

此函數支持非常有限的正則表達式語法。人們可以表達一個角色,一個特定的角色類別和實體應該在模式中重複的次數。

爲了表示一個字符類用途中的一種:

  • \c - 單字符爲其UNICHARSET::get_isalpha()爲真(字符)
  • \d - 單字符爲其UNICHARSET::get_isdigit()爲真
  • \n - 單字符爲其UNICHARSET::get_isdigit() and UNICHARSET::isalpha() are true
  • \p - unichar其中UNICHARSET::get_ispunct()爲真
  • \a - 單字符爲其UNICHARSET::get_islower()爲真
  • \A - 單字符爲其UNICHARSET::get_isupper()爲真

\*可以每個字符或圖案之後指定,以指示該字符/圖形可重複在下一個字符/模式出現之前的任意次數。

例子:

1-8\d\d-GOOG-411將擴大到字符串: 1-800-GOOG-4111-801-GOOG-411,... 1-899-GOOG-411

"ww.\n\*.com"將擴大到字符串,如: "ww.a.com""ww.a123.com" ... "ww.ABCDefgHIJKLMNop.com"

注意:在選擇包括圖案請注意這樣一個事實提供了非常通用的模式將讓正方體運行變慢。例如\n\*在該模式的開始處將使Tesseract考慮所有提議的字符選擇的每個分段的組合,這將是不可接受的緩慢。由於可能難以識別速度的潛在問題,每個用戶模式在開始時必須至少有kSaneNumConcreteChars具體字符來自unicharset

+1

鏈接中斷 –

+1

此處鏈接來自GitHub倉庫:https: //github.com/tesseract-ocr/tesseract/blob/442b5b731a3ec49dc143dc6533667b8cb62ee9a0/dict/trie.h#L192 – Federinik

+0

@Federinik非常感謝!花了很多時間尋找這個,終於找到了它! –