gpt4 book ai didi

java - 如何获取 tessbase.init 中需要使用的目录 ("directory", "eng")?

转载 作者:行者123 更新时间:2023-12-01 10:50:46 25 4
gpt4 key购买 nike

所以我试图弄清楚如何使用 TessBase,但我在 baseApi.init(dataPath, "eng") 处收到错误。我得到的错误是:目录必须包含 tessdata。我不知道如何获取包含 tessdata 的目录。这是image包含 eng.traineddata 的目录。这是我的代码:

    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);

最佳答案

我推荐的最简单方法是自己在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 bundle 在项目中,这会增加构建时间和 .apk 文件的大小(>17mb)。

在项目中 bundle eng.tessdata 的过程非常复杂,需要自己创建一个新目录,并在运行时将 bundle 的数据复制到该目录。

关于java - 如何获取 tessbase.init 中需要使用的目录 ("directory", "eng")?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33927400/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com