Tesseractのソースコードを書き直すことで問題を解決しました(SVN 597を使用しています)。nguyenqが言ったように、TesseractはTESSDATA_PREFIX環境変数によって設定されたパスでデータを検索しようとします。これが見つからない場合、それは私が理解していないいくつかのトリックを行います:)。したがって、Tesseractのポータブルバージョン(Tesseractのインストールに依存しない)が必要な場合は、60行目あたりのmainblk.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実行可能ファイルの場所」\tessdataディレクトリに物を詰めることができます