Tess-两个OCR无法正常工作

我试图在android上使用tess-two从图像获取文本.

但这给了我一个非常糟糕的结果

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  í .

当然那是不正确的,即时通讯使用这张照片:

我已经尝试了很多次,总是得到相似的结果.

可能会出错,这是我使用tess-two的代码

    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上使用该位图,它似乎是正确的,所以我找不到为什么它的效果不好.

任何想法?

解决方法:

在此更改图像文本语言的语言代码.

例如:如果您想要英语文本识别,则使用“ eng”或西班牙语作为“ spa”

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(此处eng为英文,spa为西班牙文..等)文件粘贴到资产文件夹中.

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

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...