苔丝二OCR无法正常工作
即时通讯使用tess-two在android上尝试从图像中获取文本。
但它给了我一个非常糟糕的结果
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’或西class牙语作为’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)从这里下载语言包文件,你必须下载osd.traineddata.zip文件和tesseract-ocr-3.01.eng.tar.zip(这里是英文版,spa为西class牙文等)文件粘贴到资源文件夹中。
3)在设置位图之前将其转换为灰度图像位图
- Android和Java的REST客户端改造不会终止
- MediaPlayer isPlaying()总是返回false
- java.lang.NullPointerException:尝试在空对象引用上调用虚方法’boolean java.lang.String.equals(java.lang.Object)’
- 将android连接到openLDAP服务器
- Android中的语音匹配
- oauth2 android中的jsonresponse中的invalid_client
- 将字节数组转换为android中的Base64字符串
- 如何确定,如果互联网连接当前可用且在Android设备上有效?
- Twitter认证后的CallBack