4

現在、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));
4

1 に答える 1

6

あなたが言うように、DATA_PATHディレクトリはサブフォルダとしてtessdataを含まなければなりません。したがって、tessdataフォルダーが/ data / data / tessdataの場合、DATA_PATHは/ data/dataになります。これがお役に立てば幸いです。

編集:わかりました、私は誤解したと思います!

于 2012-11-08T12:17:54.200 に答える