2013-03-25 84 views
1

我正在使用Tessnet2程序集(它使用Tesseract)來執行OCR。不幸的是,PROGRAMM崩潰沒有任何異常後,我調用init方法:Tessnet2初始化方法與某些tessdata路徑崩潰

tessnet2.Tesseract ocr = new tessnet2.Tesseract(); 
ocr.Init(@"D:\Test\Tessdata\german", "deu", false); 

德國文件夾包含以下的Tesseract 2字數據:

  • deu.DangAmgigs
  • deu.freq,耶
  • deu.inttemp
  • deu.normproto
  • deu.pffmtable
  • deu.unicharset
  • deu.user字
  • deu.word-耶

如果我使用null,因爲我在我的機器上安裝的Tesseract它工作正常的路徑。不過,我需要一個解決方案,因爲程序將被deplyoed,但不能確保安裝tesseract。

+1

如果您安裝了Tesseract,安裝程序可能已將TESSDATA_PREFIX變量設置爲與您不同的路徑。該設置保存在Windows的註冊表中。所以你可能想要卸載該版本,清理註冊表,然後再次嘗試你的程序。 – nguyenq 2013-03-25 18:24:59

+0

這是問題所在。我剛剛刪除了安裝的Tesseract,同時刪除了環境變量TESSDATA_PREFIX,它工作正常。謝謝 – andreaspfr 2013-03-27 09:26:35

回答

2

問題是,如果您安裝了Tesseract,則會有一個包含tessdata路徑的環境變量集(TESSDATA_PREFIX)。要使用自己的路徑,必須卸載Tesseract並刪除環境變量。

+0

謝謝,這有幫助。順便說一句,只是爲了確認我是否不卸載Tesseract和/或不刪除環境變量,而只是在我的C#代碼中將其更改爲指向我的自定義數據路徑,這種影響是否會影響到任何環境已經安裝tesseract。因爲我注意到,當我註釋掉正在更改環境變量的代碼時,它會再次在控制檯中向我顯示原始環境變量值。 – KAL 2015-03-22 17:09:36