Tesseract - изменить расположение языкового файла - PullRequest
7 голосов
/ 05 августа 2011

Я делаю проект AIR, которому понадобятся некоторые возможности OCR, поэтому я решил использовать tesseract (сейчас я пытаюсь заставить его работать на Windows).

Моя проблема в том, что я не могу изменить расположение языкового файла - он всегда пытается посмотреть в моем каталоге установки Tesseract (программные файлы (x86) \ Tesseract-OCR \ tessdata \ mylang.traineddata)

Есть ли способ настроить Tesseract для поиска этого файла, где я указываю?например, в той же папке, что и tesseract.exe.Я не хочу (или, возможно, событие не может) установить приложение с помощью установщика AIR.Я пробовал это с версией 3.0 и последней версией SVN.

Спасибо

Ответы [ 3 ]

11 голосов
/ 05 августа 2011

Да, вы можете, установив переменную среды TESSDATA_PREFIX, например ::

export TESSDATA_PREFIX = / usr / local / share /

Обратите внимание, что путь к каталогу должен заканчиваться на /.

2 голосов
/ 05 августа 2011

Я решил проблему, переписав исходный код Тессеракта (я использую SVN 597).Как сказал nguyenq, Tesseract пытается найти данные по пути, заданному переменной среды TESSDATA_PREFIX.Если это не найдено, то это обман, я не понимаю :).Поэтому, если кому-то нужна портативная версия Tesseract (которая не зависит от установки Tesseract), отредактируйте файл mainblk.cpp в строке 60, это моя версия:

// 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».расположение исполняемого файла "\ tessdata directory

0 голосов
/ 28 мая 2017

я предлагаю вам не обрабатывать путь tessdata TESSDATA_PREFIX .Вы можете определить путь к tessdata в init tesseract.Если вы используете tesseract.exe в командной строке, используйте следующий синтаксис:

tesseract.exe  --tessdata-dir  tessdataPath  image.png  output  -l  eng

, если вы используете tesseract :: TessBaseApi , в api.init () init:1009 *

...