tessnet2 ne parvient pas à charger

J’utilise le wrapper tessnet2 pour la source Tesseract 2.04 sous Windows XP, que j’ai configuré avec le x86.

La fonction principale du projet TessarctTest contient:

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 r1 = ocr.DoOCR(bmp, new Rectangle(792, 247, 130, 54)); List r1 = ocr.DoOCR(bmp, Rectangle.Empty); int lc = tessnet2.Tesseract.LineCount(r1); 

quand j’essaie d’exécuter le programme, il se bloque sur la ligne suivante à l’intérieur de l’ocr.Init

 int result = m_myTessBaseAPIInstance->InitWithLanguage((char *)_tessdata.ToPointer(), NULL, (char *)_lang.ToPointer(), NULL, numericMode, 0, NULL); 

Quelqu’un a une idée?

Apprécier!

Pour tous ceux qui ont toujours un problème après tout cela, assurez-vous que si vous utilisez tessnet2 vous téléchargez les fichiers de langue appropriés .

Vous voulez des données en anglais pour Tesseract (2.00 et plus) et non les données en anglais pour Tesseract 3.01 . J’espère que cela vous épargne quelques heures! 🙂

Pour ceux qui tentent d’utiliser l’assemblage Tessnet2 pour le moteur d’OCR Tesseract en C # et qui rencontrent le problème de la méthode Tesseract.Init() , provoquant le blocage de votre application, j’ai trouvé une cause possible.

Premièrement, je suppose que vous avez les fichiers suivants:

 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 

Et utilisez ceci pour l’initialisation:

 using (var ocr = new tessnet2.Tesseract()) { ocr.Init(null, "eng", false); ... } 

En théorie, ça devrait marcher. Pour moi, cela a fonctionné – mais cela ne s’est pas fait tout d’un coup … même si je n’ai rien changé qui puisse l’affecter.

Pour moi, le correctif consistait à effectuer une recherche dans le registre (à l’aide de regedit) et à supprimer toutes les références à tesseract. Je pense que certaines entrées suspectes ont peut-être été créées lors de l’installation du programme d’installation de Tesseract 3.00 (tesseract-ocr-setup-3.00.exe).

Lorsque j’ai supprimé ces entrées et redémarré (j’avais essayé de redémarrer avant de supprimer les entrées régulières, FYI), tout a fonctionné à nouveau.

Les entrées de registre ont-elles été à l’origine du problème? Qui sait. Mais cela a résolu mon problème.

Projet + Propriétés, onglet Débogage, faites défiler la liste et cochez la case “Activer le débogage du code non géré”. Vous pouvez maintenant définir un point d’arrêt et le déboguer.


Si votre IDE ne prend pas en charge le débogage en mode mixte, vous pouvez attacher un débogueur en utilisant la technique décrite dans ce message .

Assurez-vous que votre dossier tessdata (C: \ temp \ tessdata) contient les fichiers de données de langue anglaise. Les fichiers sont: eng.DangAmbigs, eng.freq-dawg, eng.inttemp, eng.normproto, eng.pffmtable, eng.unicharset, eng.user-words, eng.word-dawg. téléchargez les fichiers à partir de tesseract downloads. Le fichier à télécharger est tesseract-2.00.eng.tar.gz.

Dans mon cas, la réponse de dkr88 a fait le travail, merci beaucoup. J’imagine que certaines dépendances ont été corrompues lorsque tesseract a été installé en tant qu’administrateur autonome auparavant. De plus, la qualité de l’OCR semble être meilleure que celle de MODI bien que la correction de l’inclinaison de ce dernier fonctionne dans des circonstances plus extrêmes (texte vertical).

Je suis assez content de tessnet2 maintenant. Il n’y a qu’un inconvénient: je devais changer mon app.config (comme décrit sur Internet) et append ce qui suit:

    

Mon problème est que je n’exécutais pas l’application avec des permissions d’administrateur.

Lorsque j’ai cliqué avec le bouton droit de la souris sur Exécuter en tant que et choisi Administrateur local, cela a fonctionné.

Dans mon cas, j’ai apporté les modifications ci-dessous pour que cela fonctionne 🙂

  1. Téléchargé https://tesseract-ocr.googlecode.com/files/tesseract-2.00.eng.tar.gz
  2. Dossier tessdata collé dans mon dossier Debug
  3. Et les modifications de code suivantes

ocr.Init("D:\MyApplication\MyApplication\Debug", "eng", false);

à

ocr.Init(null, "eng", false);