Tesseract 3 (OCR) - оболочка .NET

http://code.google.com/p/tesseractdotnet/

у меня проблема с получением Tesseract для работы в моих проектах Visual Studio 2010. Я пробовал console и winforms, и оба имеют одинаковый результат. Я столкнулся с dll кем-то еще, кто утверждает, что он работает в VS2010:

http://code.google.com/p/tesseractdotnet/issues/detail?id=1

я добавляю ссылку на dll, которую можно найти в прикреплено к сообщению 64 с веб-сайта выше. Каждый раз, когда я строю свой проект, я получаю AccessViolationException сказав, что была сделана попытка чтения или записи в защищенную память.

public void StartOCR()
{
    const string language = "eng";
    const string TessractData = @"C:UsersJoeDesktoptessdata";

    using (TesseractProcessor processor = new TesseractProcessor())
    {
        using (Bitmap bmp = Bitmap.FromFile(fileName) as Bitmap)
        {
            if (processor.Init(TessractData, language, (int)eOcrEngineMode.OEM_DEFAULT))
            {
                string text = processor.Recognize(bmp);
            }
        }
    }
}

исключение нарушения доступа всегда указывает на if (processor.Init(TessractData, language, (int)eOcrEngineMode.OEM_DEFAULT)). Я видел несколько предложений, чтобы убедиться, что платформа находится в x86 в configuration manager и что расположение папки tessdata завершено с конечной косой чертой, безрезультатно. Есть идеи?

4 ответов


оказалось, что это содержимое папки tessdata, которая вызывала проблему. Получил папку tessdata из первой ссылки, и все теперь работает.


Я только что завершил проект с Tesseract engine 3. я думаю, что в двигателе есть ошибка, которую нужно исправить. Что я сделал, чтобы удалить "AccessViolationError", добавьте" \tessdata " в реальную строку каталога tessdata. Я не знаю почему, но движок, похоже, усекает самый внутренний каталог в пути Tessdata.

только что сделал полный пакет OCR (DLL+Tessdata (английский)), который работает с .net framework 4.


Если у кого-то есть такая же проблема, и совет с трейлинг-Слэш не работает, попробуйте... Две конечные слеши! Серьезно. Это работает на меня.

if (processor.Init(@".\tessdata\", "eng", (int)eOcrEngineMode.OEM_DEFAULT))

Кажется, ваша проблема связана с проблемой стабильности, упомянутой здесь. На официальном сайт существует рекомендация использовать предыдущий стабильный выпуск 2.4.1. Вы можете установить его из nuget.org через команду диспетчера пакетов:Install-Package Tesseract -Version 2.4.1