2013-02-19 26 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安裝內)複製到上述位置。

希望你會好起來的。