通过OCR Tesseract从Image中提取文本 - 错误:无法在baseApi.ini上找到源文件

时间:2014-04-11 23:31:34

标签: android ocr tesseract

我尝试用tessera运行一个简单的OCR。我的图像非常简单,如下所示:

enter image description here

因此,如果它工作正常,输出是一个提取的文本:索尼电视......

当我在Android上运行该程序时,我遇到以下问题:   baseApi.init(myDir," eng");

因为它说无法找到来源,但如图所示,它位于tssD / tessdata / eng.traineddata。

enter image description here

这是我的原始代码:

protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        String myDir= "tssD/tessdata/eng.traineddata";
        String imagePath = "myImages/Remote1.bmp";

        ImageView image = (ImageView) findViewById(R.id.imageView1);
        Bitmap bMap = BitmapFactory.decodeFile(imagePath);

        TessBaseAPI baseApi = new TessBaseAPI();
        baseApi.init(myDir, "eng"); 
        baseApi.setImage(bMap);
        String recognizedText = baseApi.getUTF8Text(); 
        EditText text = (EditText) findViewById(R.id.editText1);
        text.setText(recognizedText);   
        image.setImageBitmap(bMap);
        baseApi.end();
    }

1 个答案:

答案 0 :(得分:3)

tssD文件夹不会内置到您的APK中,也不会安装在您的设备上。如果您想在APK中加入杂项文件,则需要将它们放入资源或res / raw。

您可以在资源中打开文件,以便阅读:

InputStream input = assetManager.open("sample.txt");

AssetManager的参考页面为here