私は Android OCR プロジェクトを開発しています。私のプロジェクトでは、tess-two を使用しています。しかし、tess-two の tessdata フォルダーからトレーニング済みデータを初期化する際に問題が発生しています。
こんな感じでgrandleにtess-twoをインストールしました
dependencies {
compile 'com.rmtheis:tess-two:6.0.2'
}
次に、このようにビットマップからテキストを検出しようとしました
public String detectText(Bitmap bitmap) {
TessBaseAPI tessBaseAPI = new TessBaseAPI();
tessBaseAPI.setDebug(true);
tessBaseAPI.init(DATA_PATH, "eng"); //Init the Tess with the trained data file, with english language
//For example if we want to only detect numbers
tessBaseAPI.setVariable(TessBaseAPI.VAR_CHAR_WHITELIST, "1234567890");
tessBaseAPI.setVariable(TessBaseAPI.VAR_CHAR_BLACKLIST, "!@#$%^&*()_+=-qwertyuiop[]}{POIU" +
"YTREWQasdASDfghFGHjklJKLl;L:'\"\\|~`xcvXCVbnmBNM,./<>?");
tessBaseAPI.setImage(bitmap);
String text = tessBaseAPI.getUTF8Text();
tessBaseAPI.end();
return text;
}
ボタンがクリックされたときに発生します。私のアクティビティにはその機能のみが含まれます。問題はデータ パス変数にあります。
これは私のプロジェクト構造です
はい、2 つのシナリオを示すために、2 つの tessdata フォルダーを追加しました。
初挑戦。このようにDATA_PATHを設定します
DATA_PATH = Environment.getRootDirectory().getPath()+"/data/";
それは私に「データパスが存在しません!」エラー。だから私はこれらのソリューションTesseract OCR Android tessdata directory not foundとGet path of data directory(android) を見つけました。
だから私はこのようにDATA_PATHを設定しようとしました
DATA_PATH = Environment.getRootDirectory().getPath();
「データパスにはサブフォルダー tessdata が含まれている必要があります!」というメッセージが表示されます。エラー。
それから私はこれを試しました
DATA_PATH = Environment.getRootDirectory().getPath()+"/data/tessdata/";
その後、「データパスが存在しません!」というエラーが再び表示されます。
それから私はこの方法を試しました
DATA_PATH = Environment.getRootDirectory().getPath()+"/tessdata/";
「データパスが存在しません!」というエラーが表示されます。
だから私が試したすべての方法はうまくいきません。tessdata フォルダーを正しく初期化するにはどうすればよいですか? パスを設定する考えがありません。