2013-03-25 5 views
1

Я использую сборку Tessnet2 (которая использует Tesseract) для выполнения OCR. К сожалению, программка вылетает без исключения после того, как я называю метод инициализации:Tessnet2 Init-Method выходит из строя с определенным путем tessdata

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

Немецкая папка содержит следующую тессеракт 2 слова данных:

  • deu.DangAmgigs
  • deu.freq-Dawg
  • deu.inttemp
  • deu.normproto
  • deu.pffmtable
  • deu.unicharset
  • deu.user-слова
  • deu.word-Dawg

Если я использую null для пути он работает нормально, потому что я установил Tesseract на моей машине. Однако мне нужно решение с путём, потому что там, где программа будет развязана, не гарантируется установка tesseract.

+1

Если вы установили Tesseract, вероятность того, что установщик может установить переменную TESSDATA_PREFIX на другой, отличается от вашего. Этот параметр хранится в реестре Windows. Поэтому вы можете удалить эту версию, очистить реестр и снова попробовать свою программу. – nguyenq

+0

В этом была проблема. Я просто удалил установленный Tesseract, а также удалил переменную средыTESSDATA_PREFIX, и она сработала. Спасибо – andreaspfr

ответ

2

Проблема заключается в том, что если у вас установлен Tesseract, существует набор переменных среды (TESSDATA_PREFIX), который содержит путь tessdata. Чтобы использовать свой собственный путь, необходимо удалить Tesseract и удалить переменную окружения.

+0

Спасибо, это помогло. Кстати, просто чтобы подтвердить, не удаляю Tesseract и/или не удаляю переменную окружения, а просто измените ее в моем коде C#, чтобы указать на мой путь к пользовательским данным, это повлияет на любую среду, которая имеет уже установлен tesseract. Поскольку я заметил, что когда я комментирую свой код, который меняет переменную окружения, он снова показывает мне исходную переменную среды в консоли. – KAL