2014-01-16 3 views
1

im пытается получить текст с изображения, используя tess-two на android.Tess-two OCR не работает

Но его дать мне действительно плохой результат

01-16 12:00:25.339: I/Tesseract(native)(29038): Initialized Tesseract API with language=spa 

и как через 30 секунд он показывает это как строки результата:

{ga 
., 
r¿ 
y“: A 
    r M í 
:3 
' ‘Ev’.-:.. -: A 7 
» w- ?" _ 
Á.» ¿"A ¿rw-V r 
mjÏfn 'n’n . Y 
' "\'ZA".‘.¡ A‘ :‘ïvAv- « ‘ 
:"Éf‘Ï'" -Ï«l :‘,.v:...»- . 
' RFI' .. ’ g)" 3;:- 1-;4', 
= * ¿,arifgggk mw; .1. , 
' "53» "J 
't‘ ‘ ¿Las ;.‘».L',-‘» 
' ' 'N‘“ "“=: - '. V . ‘9! 
5.? ' “F a .“ 
Y , <_ 7- . 7.-, . 
;« z "1:;2wr . A - . ' -»‘ 5“: 
“4-”, ¿rn 73:33: w v'.‘ ¿a ‘ A ,z, v VA 
...,,« ' 'Q ' ‘ 4 214€. 5 . AV ¿JL y .13: 
1 » . 21mm; » ¿ati-“fl ¿ab-1377*“ w” 
. x ‘ ‘ ú F v'v: 
1 . ' . ; (“ya í . 

конечно то не правильно, им с помощью этой фотографии: enter image description here

Я пробовал это много раз, всегда аналогичный результат.

Что может быть неправильно, это мой код, используя Tess-два

TessBaseAPI baseApi = new TessBaseAPI(); 
    baseApi.init("/mnt/sdcard/external_sd/tess/", "spa",TessBaseAPI.OEM_TESSERACT_ONLY); 
    baseApi.setImage(bitmap); 
    String recognizedText = baseApi.getUTF8Text(); 
    Log.d("Texto leido", "texto: "+recognizedText); 
    baseApi.end(); 

и это, как я получить растровое изображение из файла

BitmapFactory.Options options = new BitmapFactory.Options(); 
    options.inPreferredConfig = Bitmap.Config.ARGB_8888; 
    Bitmap bitmap = BitmapFactory.decodeFile(photopath.getAbsolutePath(), options); 

им с помощью этого растрового изображения на ImageView и, кажется, правильно, поэтому я не могу найти, почему это плохо работает.

Любая идея?

+1

Очень плохое качество изображения. Нижний правый угол темный, как буквы. Попробуйте улучшить фотографию и вычеркните пустые области. – 18446744073709551615

+0

Кроме того, exif может указывать вращение, не уверен, что это так. – 18446744073709551615

+0

Вы пытались увеличить контрастность изображения? – Matt

ответ

1

Здесь меняем код языка для текста изображения.

например: если вы хотите английского распознавания текста языка, а затем использовать 'рус', или испанский язык для 'спа'

1)

TessBaseAPI baseApi = new TessBaseAPI(); 
     baseApi.init("/mnt/sdcard/external_sd/tess/", "eng"); 
     baseApi.setImage(bitmap); 
     String recognizedText = baseApi.getUTF8Text(); 
     Log.d("Texto leido", "texto: "+recognizedText); 
     baseApi.end(); 

2) Загрузить файлы пакета языка из Download here вас необходимо загрузить файл osd.traineddata.zip и tesseract-ocr-3.01.eng.tar.zip (здесь для английского, спа-программы для испанского и т. д.) файлы вставляются в папку с ресурсами.

3) перед тем, как установить растровое преобразование в растровое изображение изображения в масштабе серого

+0

не могу найти файл osd.traineddata.zip там u означает tesseract-ocr-3.01.osd.tar.gz? – Nanoc

+0

@Nanoc, вы можете скачать файл osd.trainned.zip из [link] (http://code.google.com/p/tesseract-ocr/source/browse/trunk/tessdata/osd.traineddata?r=540&spec= svn540). –

+0

Я сделал все это и все еще делаю то же самое, используя eng обучаемые данные + osd и преобразование в оттенки серого, тот же результат – Nanoc