我正在使用tess-two库在我的Android应用程序中实现OCR。我正在使用的代码是:
BitmapFactory.Options options = new BitmapFactory.Options();
options.inSampleSize = 4;
Bitmap bitmap = BitmapFactory.decodeFile(filePath, options);
bitmap = Bitmap.createBitmap(bitmap, 0, 0, mPreview.getWidth(), mPreview.getHeight()/2);
bitmap = bitmap.copy(Bitmap.Config.ARGB_8888, true);
TessBaseAPI baseApi = new TessBaseAPI();
//eng.traineddata
baseApi.init(Environment.getExternalStorageDirectory().toString(), "eng", TessBaseAPI.OEM_TESSERACT_CUBE_COMBINED);
baseApi.setImage(bitmap);
String recognizedText = baseApi.getUTF8Text();
Log.d("Recognized Text", recognizedText);
baseApi.end();
这是我在扫描后得到的字符串 -
'r8''_, IIFP"" >- .
_ ~11 r-- _ _
3} .
' at H k
CO' f
ty, . s
_ 1 V Fre 111'};
_ _ 011g
I .1. ' Q
h.
这一点都不正确。我不明白我在这里做错了什么。我已经下载了英语的语言数据。关于SO的问题很少,但没有什么可以帮助我。我的代码似乎是正确的。两天以来,我一直在努力解决这个问题。任何帮助将不胜感激。
修改
扫描图像:
答案 0 :(得分:2)
因此,问题是保存的图像旋转了90度,这就是代码无法正确识别文本的原因。将位图旋转-90度就可以了。现在正确识别文本。