2013-02-19 144 views
3

我在我的电脑上安装了tesseract,并且它定义了TESSDATA_PREFIX环境变量。正方体的完全卸载后,我尝试以这种方式使用的Tesseract API:如何强制tesseract不使用TESSDATA_PREFIX

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

,并收到

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. 

键入SET TESSDATA_PREFIX在cmd中给我,有没有这样的变量。但是tesseract记得它(不知道如何)。那么我如何强制tesseract在混凝土文件夹中搜索traindata?由于

回答

3

这似乎有所帮助: Tesseract - change language file location

从在该线程的答案,这似乎是正方体查找环境变量,但如果没有设置它,假设一个固定的位置的情况。

来解决,这将是运行“CMD”最简单的方法,然后执行:

c:\Users\alex> set TESSDATA_PREFIX="C:/Projects/project/Release/tessdata" 
c:\Users\alex> cd MyOCRProgDir 
c:\Users\alex\MyOCRProgDir> MyProg 

希望帮助!

+3

我不想使用它,因为它不会在另一台电脑上工作 – 2013-02-19 07:30:48

+0

你能解释为什么这不适用于其他电脑吗? – 2013-02-19 07:50:49

+0

1.)我将没有机会在另一台电脑上设置env变量mannualy 2.)它不方便3)即使重置此变量后,我不知道为什么,但它在C:\ Progamfiles(x86)\ tesseract -ocr ... – 2013-02-19 08:01:40

1

我经历过同样的问题。 ..我所做的只是将tessdata文件夹复制到我的应用程序正在运行的目录中。 。 。

注意:这样做之后,请确保将tessdata属性“复制到输出目录”设置为“始终复制”。这解决了这个问题。 。 。

请参阅此链接的YouTube。 。为了更好的示范。 。 。希望它有助于:)

http://www.youtube.com/watch?v=RqvvXJXuRYY

0

我曾与训练数据相同的问题。我没有强迫不使用TESSDATA_PREFIX,而是找到了解决方法。这对我有效。

我的机器是64位的,我用VS2012构建了32位副本。

设置环境变量。TESSDATA_PREFIX:C:\ Program Files(x86)\ Tesseract-OCR

这里“Tesseract-OCR”是“tessdata”文件夹的父目录。

编辑路径变量。 路径:C:\ tess \ lib \ lib;

这里 “C:\苔丝\ LIB \ LIB” 是其中lib和dll文件所在的地方:liblept168.dll,liblept168.lib等

开始一个新的Win32控制台应用程序并执行以下的设定。 C/C++ >>通用 C:\苔丝\包括\包括

这里“C:\苔丝\包括\包括”是其中包括文件位于“正方体”和“leptonica”文件夹的父目录。

链接>>其他库的依赖 C:\苔丝\ LIB \ lib中

链接>>附加依赖 liblept168.lib libtesseract302.lib (这些添加到列表)

C/C++ >>预处理器 _CRT_SECURE_NO_WARNINGS(将此列表添加到列表中)

将两个tesseract dll(对应于库文件)复制到调试和释放文件夹(而不是根内部的)

将tessdata文件夹(位于Tesseract安装内)复制到上述位置。

希望你会好起来的。