【问题标题】:loading traineddata for tesseract-android-tools (android)为 tesseract-android-tools (android) 加载训练数据
【发布时间】:2012-06-04 15:36:18
【问题描述】:

我正在开发安卓应用。 我需要的是训练数据文件的直接路径(初始化 tesseract)。 看起来最好的选择是将资源设置为原始。

我通过这种方式获取资源 ID(文件名为:deu.traineddata):

int rID = resources.getIdentifier("deu", "raw", "my.code.package");

好的,'rID' > 0,现在正在获取 Stream:

InputStream is = resources.openRawResource(rID);

好的,'是'!= null。 但是现在遇到问题了,通过读取 'is' IOException 已被抛出,没有堆栈跟踪:

byte[] bytes = new byte[is.available()];
is.read(bytes);

我也尝试从资产中读取文件,但从 InputStream 读取时出现同样的问题。 我做错了什么,还有其他方法可以获取资源路径吗? 谢谢 安德烈

【问题讨论】:

    标签: java android tesseract


    【解决方案1】:

    如果您查看 tesseract-android-tools(在 jni 下)中的本机代码,您会看到该库将访问一个文件。我现在在同一条船上。经过一番挖掘,我的计划是将训练好的数据文件与项目一起存储为资源,并在加载时写入私有文件。

    伪代码是这样的:

    加载时,检查私有文件, 如果它不存在,则从原始目录加载训练数据并写入私有文件。 用私有文件初始化 tesseract。

    参考: http://developer.android.com/guide/topics/data/data-storage.html#filesInternal http://developer.android.com/guide/topics/resources/providing-resources.html

    干杯

    【讨论】:

    • 经过一番尝试没有成功,所以我直接从 tesseract 服务器下载了训练数据。无论如何都感谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多