1

我正在尝试使用 tess-two 为 OCR 运行演示应用程序,但我遇到了代码问题:

我已按照以下步骤操作:

首先,我从这里下载并安装了 ndk https://developer.android.com/tools/sdk/ndk/index.html。我配置成功然后我从这里下载它“tess-two-master” https://github.com/rmtheis/tess-two并提取它,在那个位置我运行 ndk-build 命令并且它也成功编译. 然后我打开一个全新的Android Studio项目并按照“使用gradle配置tess-two”部分中的这些说明https://coderwall.com/p/eurvaq/tesseract-with-andoird-and-gradle在最后一步我去在“文件->项目结构->从左侧子窗口中选择一个模块->依赖项(最后一个选项卡)->按右侧的绿色“+”->模块依赖项->确定”

之后我下载了这个项目https://github.com/GautamGupta/Simple-Android-OCR并在我的新项目中复制并粘贴以下文件中的代码:“SimpleAndroidOCRActivity.java”、“main.xml”、“strings.xml”。 xml”。当然,我的文件有不同的名称(在我的情况下为“MainActivity.java”、“activity_main.xml”、“strings.xml”),因此有必要在代码中进行一些重命名。我还打开了我的“AndroidManifest.xml”,并在刚刚下载的“AndroidManifest.xml”中的“/application”和“/manifest”之间添加了最后(但在“/manifest”之前)(这意味着我已经添加了它“使用权限”和“使用功能”标签)。

最后一步我从这里下载了https://code.google.com/p/tesseract-ocr/downloads/list英文文件。并且在“app--> src--> main”中的项目文件夹中。我在这里创建了一个新文件夹并将其命名为“assets”。在该文件夹中,我创建了另一个名为“tessdata”的文件夹。我把它放在那里我的 .traineddata 文件。

然后,当我尝试同步它时,出现以下错误: Warning:Dependency OCR3:app:unspecified on project tess-two 解析为不支持作为编译依赖项的 APK 存档。文件:C:\Users\jana-PC\AndroidStudioProjects\OCR3\app\build\outputs\apk\app-release-unsigned.apk

当我尝试编译它时,它无法编译,因为它向我显示 TessBaseAPI 无法解析符号的错误:

我在这部分的代码是:

import com.googlecode.tesseract.android.TessBaseAPI;



        TessBaseAPI baseApi = new TessBaseAPI();
        baseApi.setDebug(true);
        baseApi.init(DATA_PATH, lang);
        baseApi.setImage(bitmap);

        String recognizedText = baseApi.getUTF8Text();

        baseApi.end(); 

任何有帮助的人,我将非常感激!

4

3 回答 3

1

您是否尝试过此解决方案:https ://coderwall.com/p/eurvaq/tesseract-with-andoird-and-gradle

于 2015-05-28T22:30:03.727 回答
1

要使用 tess-two api,您必须首先将此行添加到您的 app:gradle 文件中的 android 项目

编译'com.rmtheis:tess-two:7.0.0'

添加此行并再次同步项目,我相信您的问题将得到解决。

于 2018-04-23T13:16:43.453 回答
0

Gradle 依赖管理帮助了我;

尝试导入 tess-two 时出现未解析的符号;

在将 tess-2 导入到 android 的过程中,我也遇到了未解析的符号。发现我必须将 tess-two 作为“Gradle Project”导入,而不是作为“Android .aar”或“Android 库”导入;这意味着我必须选择 tess-two 项目的顶级项目级目录作为导入目录,而不是 tess-two 项目中的单个子项目“tess-two”;

最终确定gradle在tess -two的项目级别使用gradle build file来同步tess-two项目;但是如果导入 tess-two 子项目,则 tess-two 的项目级 gradle.build 永远不会完全解析 tess-two 项目下的依赖关系;希望这可以帮助;

于 2021-05-21T14:41:13.730 回答