2013-06-20 5 views
11

Ktoś wie, jak używać wzorców użytkownika (user_patterns_suffix) w Tesseract? Czy możesz mi doradzić, jak to zrobić i jak to sprawdzić? Starałem się śledzić tesseract instrukcji (Tessearct user-patterns ale nie widzę to wpływ na wynik w ogóle.Wzory użytkownika Tesseract

Dzięki.

+0

Czy próbowałeś dodać plik konfiguracyjny 'bazar'? Zobacz [tesseract (1)] (http://tesseract-ocr.googlecode.com/svn/trunk/doc/tesseract.1.html#_config_files_and_augmenting_with_user_data) – pvorb

Odpowiedz

16

Tesseract wykorzystuje wzorzec do aa rodzaju „wyrażenia regularnego”. Może być stosowany jeśli pozwala powiedzieć, że były skanujesz książkę z danymi, który był w tym samym formacie wzór może być stosowany powiedzieć tesseract jakie formaty oczekiwać, ike, jak oczekiwać słowa user-słowy Poniżej jest jak Tesseract describes how to use patterns:..

Każdy wzorzec może zawierać dowolne znaki bez odstępów, jednak tylko wzorce zawierające znaki z zestawu unicharset odpowiedniego języka będą przydatny.

Jedyny znak meta to \. Aby użyć go we wzorcu jako zwykły ciąg znaków, należy go zastąpić ciągiem \ (na przykład ciąg C:\Documents powinien zostać zapisany w pliku wzorów jako C:\\Documents).

Ta funkcja obsługuje bardzo ograniczoną składnię wyrażeń regularnych. Można wyrazić postać, pewną klasę postaci i liczbę powtórzeń danej istoty we wzorcu.

oznaczający użycie klasy znak jeden:

  • \c - unichar dla których UNICHARSET::get_isalpha() jest prawdziwe (znak)
  • \d - unichar dla których UNICHARSET::get_isdigit() prawda
  • \n - unichar dla których UNICHARSET::get_isdigit() i UNICHARSET::isalpha() są prawdziwe
  • \p - unichar dla których UNICHARSET::get_ispunct() prawda
  • \a - unichar dla których UNICHARSET::get_islower() prawda
  • \A - unichar dla których UNICHARSET::get_isupper() prawda

\* może być określona po każdym znaku lub wzoru, aby wskazać, że charakter/wzór można powtórzyć dowolną liczbę razy, zanim pojawi się następny znak/wzór.

Przykłady:

1-8\d\d-GOOG-411 zostanie poszerzona do strun: 1-800-GOOG-411, 1-801-GOOG-411 ... 1-899-GOOG-411.

"ww.\n\*.com" zostanie poszerzona do strun jak: "ww.a.com""ww.a123.com" ... "ww.ABCDefgHIJKLMNop.com"

UWAGA: Przy wyborze wzorów do których należą należy zdawać sobie sprawę z faktu, zapewniając bardzo ogólne wzorce uczyni tesseract działać wolniej. Na przykład \n\* na początku wzorca spowoduje, że Tesseract rozważy wszystkie kombinacje proponowanych wyborów znaków dla każdej z segmentacji, które będą niedopuszczalnie powolne.Ze względu na potencjalne problemy z szybkością, które mogą być trudne do zidentyfikowania, każdy wzorzec użytkownika musi mieć co najmniej kSaneNumConcreteChars konkretne znaki z unicharset na początku.

+1

Link jest uszkodzony –

+1

Tutaj link z repozytorium GitHub: https: //github.com/tesseract-ocr/tesseract/blob/442b5b731a3ec49dc143dc6533667b8cb62ee9a0/dict/trie.h#L192 – Federinik

+0

@Federinik Wielkie dzięki! Spędziłem dużo czasu, szukając tego, w końcu znalazłem to! –