gpt4 book ai didi

android - 无法将 eng.traineddata 添加到我的 Tesseract 项目 Android 5.0

转载 作者:太空狗 更新时间:2023-10-29 14:05:03 24 4
gpt4 key购买 nike

我目前正在尝试将 Tesseract OCR 实现到我的项目中,但已经走到了十字路口。我遵循了 https://github.com/rmtheis/tess-two 中的所有指示并陷入了该项目的实际实现部分。我当前运行的代码是:

 TessBaseAPI baseApi = new TessBaseAPI();
baseApi.init(TESS_DATA_FILE_PATH, "eng");
baseApi.setImage(icon);
String recognizedText = baseApi.getUTF8Text();
baseApi.end();

现在 TESS_DATA_FILE_PATH 是当前问题。我一直在尝试将 eng.traineddata 文件添加到我的项目中,但我根本不知道在哪里或如何做。

我尝试过的事情:

  1. 在 Assets 文件夹中,我添加了文件 eng.traineddata 但它是只读的,我无法在运行时更改它。所以这行不通
  2. 我尝试添加其他方式来运行该项目,并运行 adb push 命令以将其直接添加到设备,但这行不通,因为我会将此应用程序推向大众。

所以我正在寻找的是如何将 eng.traineddata 添加到我的项目中的答案。我应该在初始化调用的 TESS_DATA_FILE_PATH 部分放置什么。

旁注:在上面提供的链接中的所有步骤结束时,我确实收到了 BUILD SUCCESSFUL 调用。

最佳答案

我已经成功将语言包添加到我的项目中,并在我的android项目上运行了tess 2。

这是我如何做到的代码:

这是设置文件路径,并添加 traineddata 文件夹

public void setupOCR(){

File folder = new File(Environment.getExternalStorageDirectory() + "/classlinkp/tessdata");
if (!folder.exists()) {
folder.mkdirs();
}

File saving = new File(folder, "eng.traineddata");
try {
saving.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}

InputStream stream = null;
try {
stream = mContext.getAssets().open("eng.traineddata", AssetManager.ACCESS_STREAMING);
} catch (IOException e) {
e.printStackTrace();
}


if (stream != null){
copyInputStreamToFile(stream, saving);
}
}

以下是我如何保存 eng.traineddata 文件:

  private void copyInputStreamToFile( InputStream in, File file ) {
try {
OutputStream out = new FileOutputStream(file);
byte[] buf = new byte[1024];
int len;
while((len=in.read(buf))>0){
out.write(buf,0,len);
}
out.close();
in.close();
} catch (Exception e) {
e.printStackTrace();
}
}

保存方法来自:https://stackoverflow.com/a/28131358/3781164

关于android - 无法将 eng.traineddata 添加到我的 Tesseract 项目 Android 5.0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33160176/

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