【问题标题】:Tesseract OCR Android tessdata directory not found找不到 Tesseract OCR Android tessdata 目录
【发布时间】:2012-11-08 05:01:33
【问题描述】:

我目前正在使用 OCR 开发一个 Android 应用程序,并且已经到了调用 BaseAPI.init() 方法的地步。我不断收到错误消息,指出该目录必须包含 tessdata 作为子文件夹。我检查了文件目录是否包含其中包含 trainingdata 文件的文件夹,并确保我指向正确的目录。我真的很想解决这个问题。

我指向的目录是 /mnt/sdcard/Image2Text/ 。我已经确定 tessdata 是一个包含必要语言文件的子文件夹。

代码如下:

public static final String DATA_PATH = Environment.getExternalStorageDirectory().toString() +
                                            "/Image2Text/";


....

File dir = new File(DATA_PATH + "tessdata");
    dir.mkdirs();

    if (!(new File(DATA_PATH + "tessdata/" + lang + ".traineddata")).exists()) {
        try {

            AssetManager assetManager = getAssets();
            InputStream in = assetManager.open("eng.traineddata");
            OutputStream out = new FileOutputStream(DATA_PATH
                    + "tessdata/eng.traineddata");

            byte[] buf = new byte[1024];
            int len;
            while ((len = in.read(buf)) > 0) {
                out.write(buf, 0, len);
            }
            in.close();
            out.close();
        } catch (IOException e) {}
    }

    TessBaseAPI baseAPI = new TessBaseAPI();
    baseAPI.init(DATA_PATH, lang);
    baseAPI.setImage(new File(path));

【问题讨论】:

    标签: android ocr tesseract


    【解决方案1】:

    如您所说,DATA_PATH 目录必须包含 tessdata 作为子文件夹。因此,如果您的 tessdata 文件夹是 /data/data/tessdata,则 DATA_PATH 将是 /data/data 我希望这会有所帮助!

    编辑:嗯,我想我理解错了!

    【讨论】:

    • 对,这部分是我通过阅读 BaseAPI.java 文件知道的。我已经进入文件系统检查并确保目录在那里,而且确实如此。本例中的目录是 /mnt/sdcard/Image2Text/。该目录包含 tessdata 作为子文件夹。我是否在我的代码中错误地指定了它?另外,如果不是,我的代码应该创建文件夹。在我的情况下确实如此,因为我在 AndroidManifest.xml 中有 android.permission.WRITE_EXTERNAL_STORAGE
    猜你喜欢
    • 2021-01-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-17
    相关资源
    最近更新 更多