【问题标题】:OCR using tess-two library returning incorrect textOCR 使用 tess-two 库返回不正确的文本
【发布时间】:2014-09-25 07:35:02
【问题描述】:

我正在使用 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 的类似问题很少,但没有什么可以帮助我。我的代码似乎是正确的。两天以来,我一直在为此苦苦挣扎。任何帮助将不胜感激。

编辑:

扫描的图像:

【问题讨论】:

  • 能否附上您尝试进行 OCR 的图像的副本?
  • @rmtheis:我添加了图像。当我使用您的示例应用程序扫描同一图像时 - github.com/rmtheis/android-ocr。它正确读取数据。
  • 嗨-..我想实现 tess 两个库。但我无法运行代码,因为它告诉“java.lang.UnsatisfiedLinkError: Couldn't load lept from loader .....”期待你的帮助
  • @Biplab:如果您将此作为新问题发布会更好。通过这种方式获得帮助的机会更大。
  • 嗨,我需要从硬拷贝(如当前账单等硬拷贝等)中扫描小文本(文本大小接近 8 到 10sp)。我正在使用这个 github.com/rmtheis/android-ocr 项目。如何扫描较小的文本?我在这里感到震惊。请尽快帮助我。在此先感谢。

标签: android ocr tesseract


【解决方案1】:

因此,问题是保存的图像旋转了 90 度,这就是代码无法正确识别文本的原因。将位图旋转 -90 度就可以了。现在文本被正确识别了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-09
    • 2015-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-07
    相关资源
    最近更新 更多