所以我想弄清楚如何使用TessBase,我在baseApi.init(dataPath, "eng")
收到错误。我得到的错误是:directory must contain tessdata
。我无法弄清楚如何获取包含tessdata的目录。这是包含eng.traineddata的目录的image。这是我的代码:
Bundle extras = data.getExtras();
Bitmap photoBitmap = (Bitmap) extras.get("data");
TessBaseAPI baseApi = new TessBaseAPI();
//textcaptured.setText(DATA_PATH.toString());/*
String dataPath = Environment.getExternalStorageDirectory().toString() + "/Android/data/" + getApplicationContext().getPackageName() + "/";
textcaptured.setText(dataPath);
File tessdata = new File(dataPath);
if (!tessdata.exists() || !tessdata.isDirectory()) {
throw new IllegalArgumentException("Data path must contain subfolder tessdata!");
}
baseApi.init(dataPath, "eng");
baseApi.setImage(photoBitmap);
String recognizedText = baseApi.getUTF8Text(); // Log or otherwise display this string...
baseApi.end();
textcaptured.setText(recognizedText);
答案 0 :(得分:1)
我推荐的最简单方式是 自己在SD卡中创建一个文件夹,并在其中放置一个带有子目录tessdata的目录,其中包含eng.tessdata结构,如下所示:
+SdCardOfPhone
--+YourAppName
----+tessdata
------eng.tessdata
现在您可以通过
指向该目录 String datapath = Environment.getExternalStorageDirectory() + "/YourAppName/";
TessBaseAPI tessBaseAPI = new TessBaseAPI();
tessBaseAPI.init(datapath, "eng");
您还必须在AndroidManifest.xml文件中包含以下内容
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
出于测试目的,我不建议将eng.tessdata捆绑在项目中,这会增加构建时间和.apk文件的大小(> 17mb)。
将eng.tessdata捆绑在项目中的过程非常复杂,需要自己创建一个新目录,并在运行时将捆绑的数据复制到该目录。