Tessnet2 не загружается
Я использую оболочку tessnet2 для источника Tesseract 2.04 для Windows XP,
настроил его на работу с x86.
Основная функция проекта TessarctTest содержит:
Bitmap bmp = new Bitmap(@"C:\temp\New Folder\dotnet\eurotext.tif");
tessnet2.Tesseract ocr = new tessnet2.Tesseract();
// ocr.SetVariable("tessedit_char_whitelist", "0123456789");
ocr.Init(@"C:\temp\tessdata", "eng", false);
// List<tessnet2.Word> r1 = ocr.DoOCR(bmp, new Rectangle(792, 247, 130, 54));
List<tessnet2.Word> r1 = ocr.DoOCR(bmp, Rectangle.Empty);
int lc = tessnet2.Tesseract.LineCount(r1);
когда я пытаюсь запустить программу, она сбой в следующей строке внутри ocr.Init
int result = m_myTessBaseAPIInstance->InitWithLanguage((char *)_tessdata.ToPointer(), NULL, (char *)_lang.ToPointer(), NULL, numericMode, 0, NULL);
У кого-нибудь есть идея?
Цените!
Ответы
Ответ 1
Для всех, у кого по-прежнему возникает проблема, убедитесь, что вы используете tessnet2 для загрузки правильных языковых файлов.
Вы хотите данные на английском языке для Tesseract (2.00 и выше), а не данные на английском языке для версии Tesseract 3.01. Надеюсь, это сэкономит вам несколько часов!:)
Ответ 2
Для тех, кто пытается использовать сборку Tessnet2 для механизма OCR Tesseract на С# и кто сталкивается с проблемой метода Tesseract.Init()
, вызывающего сбой приложения, я нашел одну возможную причину.
Во-первых, я предполагаю, что у вас есть файлы следующим образом:
bin\Debug\MyDotNetApp.exe
bin\Debug\tessdata\eng.DangAmbigs
bin\Debug\tessdata\eng.freq-dawg
bin\Debug\tessdata\eng.inttemp
bin\Debug\tessdata\eng.pffmtable
bin\Debug\tessdata\eng.unicharset
bin\Debug\tessdata\eng.user-words
bin\Debug\tessdata\eeng.word-dawg
И используют это для инициализации:
using (var ocr = new tessnet2.Tesseract())
{
ocr.Init(null, "eng", false);
...
}
В теории, которая должна работать. Для меня это сработало - но потом это не внезапно... хотя я не изменил ничего, что повлияло бы на это.
Для меня было исправить поиск в реестре (с помощью regedit) и удалить все ссылки на tesseract. Были некоторые подозрительные записи, которые, я думаю, могли быть созданы, когда я установил установщик Tesseract 3.00 (tesseract-ocr-setup-3.00.exe).
Когда я удалил эти записи и перезагрузился (я попытался перезагрузить перед удалением записей reg, FYI), все снова работало.
Были ли записи реестра причиной проблемы? Кто знает. Но это устранило мою проблему.
Ответ 3
Project + Properties, вкладка Debug, прокрутите вниз, отметьте галочкой флажок "Включить неуправляемый отладку кода". Теперь вы можете установить точку останова и отладить ее.
Если ваша среда разработки не поддерживает отладку смешанного режима, вы можете прикрепить отладчик, используя технику, описанную в этом сообщении.
Ответ 4
Убедитесь, что ваша папка tessdata (C:\temp\tessdata) содержит файлы данных на английском языке. Файлы: eng.DangAmbigs, eng.freq-dawg, eng.inttemp, eng.normproto, eng.pffmtable, eng.unicharset, eng.user-words, eng.word-dawg. загрузите файлы из загрузки tesseract. Файл для загрузки - tesseract-2.00.eng.tar.gz.
Ответ 5
В моем случае ответ от dkr88 сделал работу, спасибо большое. Я предполагаю, что некоторая зависимость коррумпирована, когда tesseract был установлен как автономный раньше. Кроме того, качество OCR кажется лучше, чем с MODI, хотя tiltcorrection и последний работает в более экстремальных условиях (вертикальный текст).
Я очень доволен tessnet2 сейчас. Есть только один недостаток: мне нужно было изменить свой app.config(как описано в Интернете) и добавил следующее:
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0"/>
</startup>
Ответ 6
Моя проблема в том, что я не запускал приложение с разрешениями администратора.
Когда я щелкнул правой кнопкой мыши, запустите и выберите Local Administrator, и он сработал.
Ответ 7
В моем случае я сделал следующие изменения, чтобы заставить его работать:)
ocr.Init("D:\MyApplication\MyApplication\Debug", "eng", false);
к
ocr.Init(null, "eng", false);
Ответ 8
В моем случае я установил, что файлы tessdata копируются всегда, и тогда он не вылетал в строке инициализации.