2016-05-30 6 views
0

Ich habe ein Bild, das ich nicht Tesseract als Text erkennen kann. Alle meine Eingabetext sind URLs. enter image description hereTweak Tesseract für bessere Erkennung von URLs in Bild

Wie Sie sehen können, ist das Bild so klar wie es sein kann.

Beim Ausführen tesseract test2.png stdout gibt http:II11111111111111111111111111111111111 1111111111111111111.coml zurück, die nahe, aber nicht korrekt ist.

Wenn der Parameter tessedit_char_whitelist auf htp:/1.com gesetzt wird, erkennt er die Zeichenfolge korrekt (aber ich möchte auch eine allgemeinere Erkennung von URLs).

in einer Pattern-Datei Passing, die Zeile wie unten mit dem Befehl sieht tesseract test2.png stdout --user-patterns ./patterns.txt

\n\*://\n\* 
http://\n\* 
\n\*.com 

nicht mit Anerkennung hilft. Es bevorzugt immer noch I über /. (Weitere Details über die pattern file)

Ich habe auch versucht, die Parameter einzustellen ok_repeated_ch_non_alphanum_wds enthalten / (und chs_trailing_punct{1,2} für/Hinter, aber es scheint nicht zu. Arbeiten --user-words Angeben hilft auch nicht. (Bei " Worte“zu sein http://)

gibt es eine Möglichkeit char Priorität für tesseract spezifizieren

Version Info:

$ tesseract -v 
tesseract 3.04.01 
leptonica-1.73 
    libgif 5.1.2 : libjpeg 8d (libjpeg-turbo 1.4.2) : libpng 1.2.54 : libtiff 4.0.6 : zlib 1.2.8 : libwebp 0.4.4 : libopenjp2 2.1.0 

Antwort

2

Sie können dies erreichen, indem Sie die folgende Zeile mit denen Sie Ihre unicharambigs Datei:

3 : I I 3 :// 1

  1. extrahieren die unicharambigs die unicharambigs Datei mit combine_tessdata -e eng.traineddata eng.unicharambigs
  2. Datei bearbeiten, zum Beispiel mit nano eng.unicharambigs (achten Sie darauf, Tabs nach beiden 3s und die zweite/verwenden).
  3. die unicharambigs Datei in der traineddata Datei überschreiben mit der editierten Version combine_tessdata -o eng.traineddata eng.unicharambigs

Ausgabe des geänderten traineddata Datei:

$ tesseract test2.png stdout 
http://11111111111111111111111111111111111 
1111111111111111111.coml 
+0

ich die Linie '4 COML 4 com/1 'für neu eingestellte'/'' l 'Verwirrung, aber deine Idee hat funktioniert. – Diederik