Tesseract -更改语言文件位置
Tesseract - change language file location
我正在制作一个AIR项目,这将需要一些OCR功能,所以我决定使用tesseract(现在我试图让它在Windows上工作)。
我的问题是,不能改变语言文件的位置-它总是试图查看我的Tesseract安装目录(程序文件(x86)Tesseract- ocr tessdatamylang.traineddata)
是否有一种方法,我可以配置Tesseract寻找我指定的这个文件?例如在与tesseract.exe相同的文件夹中。我不想(或者事件不能)安装应用程序与AIR安装程序。我用3.0版本和最新的SVN版本都试过了。
谢谢
可以,通过设置TESSDATA_PREFIX环境变量,例如:
export TESSDATA_PREFIX =/usr/地方/分享/
注意目录路径必须以/结尾
我建议你不要通过TESSDATA_PREFIX处理tessdata路径。你可以在init tesseract中定义tessdata路径。如果在命令行中使用tesseract.exe,请使用以下语法:
tesseract.exe --tessdata-dir tessdataPath image.png output -l eng
如果你使用tesseract::TessBaseApi,在api.init()中init如下:
api->Init(tessdataPath, language) //api->Init("C:", "eng")
我通过重写Tesseract的源代码(我使用SVN 597)解决了这个问题。正如nyuenq所说,Tesseract试图在TESSDATA_PREFIX环境变量设置的路径上查找数据。如果没有找到,那么它做了一些诡计,我不明白:)。因此,如果有人需要一个可移植版本的Tesseract(不依赖于Tesseract安装),请在第60行左右编辑mainblock .cpp,这是我的版本:
// remove the stuff that Tesseract does to find the installation path
/* if (!getenv("TESSDATA_PREFIX")) {
#ifdef TESSDATA_PREFIX
#define _STR(a) #a
#define _XSTR(a) _STR(a)
datadir = _XSTR(TESSDATA_PREFIX);
#undef _XSTR
#undef _STR
#else
if (argv0 != NULL) {
if (getpath(argv0, dll_module_name, datadir) < 0)
#ifdef __UNIX__
CANTOPENFILE.error("main", ABORT, "%s to get path", argv0);
#else
NO_PATH.error("main", DBG, NULL);
#endif
} else {
datadir = "./";
}
#endif
} else {
datadir = getenv("TESSDATA_PREFIX");
}*/
datadir = "./"; // look for config things in the same folder as the executable.
现在你可以把东西打包到"tesseract executable location"tessdata目录
- 更改.cpp程序的输入文件中数据的位置会意外更改输出
- 如何选择在 csv 文件中输出的位置
- 无法打开 fstream C++文件,即使它与 .cpp 位于同一位置
- 如何在特定位置追加 json 文件
- 将文件复制到自定义位置,存在字符串转换问题
- 奇怪的Arduino C++编译错误取决于文件位置
- 在 elf 文件中查找全局变量的位置
- 可以将Boost消息队列文件重定向到用户指定的位置
- 您如何确定 MySQLCPPConn 库文件的位置?
- 是否可以将要"ShellExecute"的文件包含在 dll 中?如果是这样,"ShellExecute"中的文件位置应该是什么?
- 快速访问 ifs() C++中的文件位置
- 从C++中父文件夹的父文件夹提供文件位置
- MFC 打开文件位置并选择(突出显示)该文件
- 如何从HTTP在C++中打开一个URL不是文件位置的文件
- 如何处理不同 Linux 发行版上的不同头文件位置
- 配置文件位置和二进制文件,并构建像autoconf这样的系统
- 文件类型以编程关联和文件位置(Windows)
- Visual Studios (2012 pro 主要是) <从父级继承或项目默认值的默认值的文件位置>
- Tesseract -更改语言文件位置
- 更改Xcode c++应用程序外部文件位置