我正在开发一个 Android OCR 项目。在我的项目中,我使用的是 tess-two。但是我在初始化 tess-2 的 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;
}
单击按钮时会触发该事件。我的活动只包括那个功能。问题在于数据路径变量。
这是我的项目结构
是的,我添加了两个 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 文件夹?我不知道为它设置路径。