2012-10-19 6 views
9

Ich verwende tesseract-ocr-3.01, um viele Formulare zu scannen. Die Formulare folgen alle einer Vorlage, also weiß ich schon, wo die Regionen/Rechtecke des Textes sind.Tesseract: Angeben von Textbereichen

Gibt es eine Möglichkeit, diese Regionen an Tesseract zu übergeben, wenn Sie das Befehlszeilentool verwenden?

Antwort

11

fand ich die Antwort, dank this thread.

Es scheint, dass tesseract das Uzn-Format unterstützt (in den Unvl-Tests verwendet).

Vom Faden:

mit dem Parameter „-psm 4“ und Umbenennen der Datei UZN mit dem gleichen Namen des Bildes aufrufen Tesserakts scheinen Werke.

Beispiel: Wenn wir C:\input.tif und C:\input.uzn haben, tun wir dies:

tesseract -psm 4 C:\input.tif C:\output 
3

Dies kann keine optimale Lösung sein, aber hier geht:

Ich bin nicht sicher, ob das Kommandozeilen-Tool Optionen Text-Regionen angeben hat.

Was Sie tun können, ist eine Tesseract-Wrapper auf einer anderen Plattform (EmguCV hat Tesseract eingebaut). Sie erhalten also das gescannte Bild, schneiden die Textbereiche aus und geben sie Tesseract nacheinander. Auf diese Weise vermeiden Sie auch Ungenauigkeiten in der Seitenlayoutanalyse von Tesseract.

z.

Image<Gray,Byte> scannedImage = new Image<Gray,Byte>(path_to_scanned_image); 
//assuming you know a text region 
Image<Gray,Byte> textRegion = new Image(100,20); 
scannedImage.ROI = new Rectangle(0,0,100,20); 
scannedImage.copyTo(textRegion); 
ocr.recognize(textRegion); 
+1

Hehe, dass mein Ausweich Plan war, wenn Tesserakts Regionen nicht akzeptieren :) – sashoalm