java - 苔丝两个OCR不工作

  显示原文与译文双语对照的内容

我正在尝试使用android的tess从图像中获取文本。

但它给了我一个错误的结果


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

我尝试过很多次总是类似的结果。

什么是错误的,这是我的代码使用泰丝二


 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上使用这个位图,似乎是正确的,所以我无法找到它的工作原理。

任何想法?

时间: 作者:

这里更改图像文本语言的语言代码。

如果你想要英语文本识别,那么使用'工程工程',或者西班牙语"for"'

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();

下载来自美国下载的语言包文件( 你必须下载 osd.traineddata.zip 文件和 tesseract-ocr-3 。01 eng tar 。zip ) ( 这里是西班牙语,spa代表西班牙语。 etc ) 文件粘贴到 assets 文件夹中。

3 ) 在将位图转换为灰度图像位图之前

...