如何强制 tesseract 不使用 TESSDATA_PREFIX

Ale*_*pus 5 c++ ocr tesseract

我在我的电脑上安装了 tesseract,它定义了 TESSDATA_PREFIX 环境变量。完全卸载tesseract后,我尝试以这种方式使用tesseract API:

if (myOCR->Init("C:/Projects/project/Release/tessdata/", "rus")) {
            fprintf(stderr, "Could not initialize tesseract.\n");
            exit(1);
        }
Run Code Online (Sandbox Code Playgroud)

并收到

Error opening data file C:\Program Files (x86)\Tesseract-OCR\tessdata/rus.traine
ddata
Please make sure the TESSDATA_PREFIX environment variable is set to the parent d
irectory of your "tessdata" directory.
Failed loading language 'rus'
Tesseract couldn't load any languages!
Could not initialize tesseract.
Run Code Online (Sandbox Code Playgroud)

在 cmd 中输入 set TESSDATA_PREFIX 告诉我没有这样的变量。但是tesseract记得它(不知道如何)。那么如何强制 tesseract 在具体文件夹中搜索 traindata 呢?谢谢

Rah*_*jee 3

这似乎很有帮助: Tesseract - Change language file location

从该线程中的答案来看,tesseract 似乎是在查找环境变量,但如果未设置,则假定为固定位置

解决此问题的最简单方法是运行“cmd”,然后执行以下操作:

c:\Users\alex> set TESSDATA_PREFIX="C:/Projects/project/Release/tessdata"
c:\Users\alex> cd MyOCRProgDir
c:\Users\alex\MyOCRProgDir> MyProg
Run Code Online (Sandbox Code Playgroud)

希望有帮助!

  • 我不想使用这个,因为它在另一台电脑上无法工作 (4认同)