【发布时间】:2020-04-25 07:16:19
【问题描述】:
我目前正在编写一个应该从 JPEG 图像中读取十六进制数据的 C++ 程序。我必须将它编译成一个 单个 windows 可执行文件没有任何外部资源(如“tessdata”目录或配置文件)。因为我不阅读任何单词或句子,所以我不需要任何字典或语言。
我现在的问题是我找不到在没有任何语言文件的情况下初始化 API 的方法。每个例子都使用这样的东西:
tesseract::TessBaseAPI api;
if (api.Init(NULL, "eng")) {
// error handling
return -1;
}
// do stuff
我还发现我可以在没有语言参数和 OEM_TESSERACT_ONLY 的情况下调用 init 函数:
if(api.Init(NULL, NULL, tesseract::OcrEngineMode::OEM_TESSERACT_ONLY)) {
// ...
}
这应该禁用语言/字典,但NULL 只是默认为“eng”。似乎 tesseract 仍然希望初始化一个语言文件,然后将其禁用。
到目前为止,我发现的任何其他解决方案似乎也是如此:我总是需要 .traineddata 文件来初始化 api,并且可以disable them afterwards 或使用config files。
我现在的问题是: 有什么方法可以只使用可执行文件而不使用其他资源文件在 C++ 中初始化 tesseract API?
【问题讨论】: