web-dev-qa-db-fra.com

Tesseract 3 (OCR) - .NET Wrapper

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

Je ne parviens pas à faire travailler Tesseract dans mes projets Visual Studio 2010. J'ai essayé console et winforms et les deux ont le même résultat. J'ai rencontré une dll par quelqu'un d'autre qui prétend le faire fonctionner dans VS2010:

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

J'ajoute une référence à la dll qui se trouve dans la pièce jointe au post 64 du site Web ci-dessus. Chaque fois que je construis mon projet, je reçois une AccessViolationException disant qu'une tentative a été faite pour lire ou écrire de la mémoire protégée.

public void StartOCR()
{
    const string language = "eng";
    const string TessractData = @"C:\Users\Joe\Desktop\tessdata\";

    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);
            }
        }
    }
}

L'exception de violation d'accès pointe toujours sur if (processor.Init(TessractData, language, (int)eOcrEngineMode.OEM_DEFAULT)). J'ai vu quelques suggestions pour m'assurer que la plateforme de la solution est définie sur x86 dans le gestionnaire de configuration et que l'emplacement du dossier tessdata se termine par un slash de fin, mais en vain. Des idées?

21
Jpin

Il semble que le contenu du dossier tessdata soit à l'origine du problème. Obtenu le dossier tessdata du premier lien et tout fonctionne maintenant.

7
Jpin

Je viens de terminer un projet avec le moteur Tesseract 3. Je pense qu’il ya un bogue dans le moteur qui doit être corrigé. Ce que j’ai fait pour supprimer "AccessViolationError" consiste à ajouter "\ tessdata" à la chaîne de répertoire tessdata réelle. Je ne sais pas pourquoi, mais le moteur semble tronquer le répertoire le plus à l'intérieur du chemin Tessdata.

Je viens de faire un package Full OCR (Dlls + Tessdata (anglais)) qui fonctionne avec le framework .net 4.

2
Umar Hassan

Il semble que votre problème concerne le problème de stabilité mentionné ici . Sur le site officiel site , il est recommandé d'utiliser la version stable précédente 2.4.1. Vous pouvez l'installer à partir de nuget.org via la commande du gestionnaire de packages: Install-Package Tesseract -Version 2.4.1

0
Nikita

Si quelqu'un a le même problème et que les conseils concernant le slash final ne fonctionnent pas, essayez ... DEUX slash! Seriosly. Ça marche pour moi.

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