Инициализировать тессеракт без каких-либо внешних ресурсов (языков / словарей) - PullRequest
0 голосов
/ 25 апреля 2020

В настоящее время я пишу программу на C ++, которая должна считывать шестнадцатеричные данные из изображений JPEG. Я должен скомпилировать его в один один windows исполняемый файл без каких-либо внешних ресурсов (например, каталог "tessdata" или файлы конфигурации). Поскольку я не читаю никаких слов или предложений, мне не нужны словари или языки.

Моя проблема в том, что теперь я не смог найти способ инициализации API без каких-либо языковых файлов. Каждый пример использует что-то вроде этого:

tesseract::TessBaseAPI api;
if (api.Init(NULL, "eng")) {
    // error handling
    return -1;
}
// do stuff

Я также обнаружил, что могу вызывать функцию init без аргумента языка и с помощью OEM_TESSERACT_ONLY:

if(api.Init(NULL, NULL, tesseract::OcrEngineMode::OEM_TESSERACT_ONLY)) {
    // ...
}

Этот должен отключить язык / словарь, но NULL по умолчанию "eng". Похоже, что tesseract все еще хочет инициализировать языковой файл и впоследствии отключит его.

Это также относится и к любым другим решениям, которые я нашел до сих пор: мне всегда нужны файлы .traineddata для инициализации API и могу впоследствии отключить их или использовать файлы конфигурации .

Мой вопрос сейчас: есть ли способ инициализации API-интерфейса tesseract в C ++ с использованием только исполняемого файла и никаких других файлы ресурсов?

1 Ответ

0 голосов
/ 25 апреля 2020

Нет. Тессеракту всегда нужны некоторые языковые (по умолчанию eng) + osd (.traineddata) файлы. Без файла языковых данных tesseract бесполезен.

Похоже, что в вашем сообщении вы сделали несколько неправильных предположений (например, о OEM_TESSERACT_ONLY), поэтому, возможно, если вы опишите, чего пытаетесь достичь с помощью tesseract, вы можете получить более качественный совет.

...