2012-10-19 10 views
9

Używam tesseract-ocr-3.01 do skanowania wielu formularzy. Wszystkie formularze podążają za szablonem, więc już wiem, gdzie znajdują się regiony/prostokąty tekstu.Tesseract: Określanie regionów tekstu

Czy istnieje sposób na przekazanie tych regionów do teseraktowania przy użyciu narzędzia wiersza poleceń?

Odpowiedz

11

Znalazłem odpowiedź, dzięki this thread.

Wygląda na to, że tesseract obsługuje format rozpoznania (używany w testach unvl).

z wątku:

Wywołanie tesseract z parametrem „-psm 4” i zmiana nazwy pliku uzn o tej samej nazwie obrazu wydają się prace.

Przykład: Jeśli mamy C:\input.tif i C:\input.uzn, robimy to:

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

To może nie być optymalna odpowiedź, ale tu idzie:

Nie jestem pewien, czy narzędzie wiersza polecenia ma możliwości określić tekst regionów.

Co można zrobić, to użyć otoki Tesseract na innej platformie (EmguCV ma wbudowany Tesseract). Dostajesz zeskanowany obraz, wycinasz obszary tekstowe i przekazujesz je Tesseract jeden na raz. W ten sposób unikniesz również niedokładności w analizie układu strony Tesseract.

np.

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, to był mój plan rezerwowy jeśli tesseract nie akceptuje regiony :) – sashoalm