Question

Je souhaite utiliser l'objet Tesseract d'Emgu.cv pour faire l'OCR sur certaines images. Pour commencer, j'ai téléchargé, compilé et exécuté leurs exemples OCR et LicencePlateRecognition.

Cependant, Tesseract a continué à lancer l'exception suivante:

Impossible de créer un modèle OCR en utilisant le chemin «Teseract» et le langage «Eng».

Et j'ai tracé la source à la ligne:

_ocr = new Tesseract(@"tessdata", "eng", Tesseract.OcrEngineMode.OEM_TESSERACT_CUBE_COMBINED);

J'ai essayé de le réparer avec les moyens les plus évidents: je lui ai donné le chemin complet, j'ai copié les fichiers autour de «C: », et je me suis assuré que le répertoire actuel de mon programme était le même avec le Tessdata.

Aucun de ceux qui fonctionnaient, j'ai donc utilisé ProCmon et j'ai découvert qu'il recherchait les fichiers ici:

C: Program Files (x86) Tesseract-OCR TessData

Et il semble que peu importe ce que je fais, je ne peux pas le changer de cet endroit. (Le déplacement des fichiers y a fonctionné, bien sûr). Cet emplacement n'existe nulle part dans le code d'Emgu.cv, donc je suppose qu'il est compilé dans le code de Tesseract comme par défaut (?).

Alors, comment puis-je changer Tesseract de l'utilisation de cet emplacement? La façon évidente est que le constructeur Tesseract devrait faire quelque chose avec le chemin que j'y passe, alors qu'est-ce que je manque?

Était-ce utile?

La solution

J'ai essayé de copier des fichiers dans le répertoire où mon application s'exécute, j'ai essayé des chemins absolus et relatifs et j'ai essayé d'utiliser HTE codé par Hte C: Program Files (x86) Tesseract-OCR TessData. Aucun d'eux n'a fonctionné pour moi.

Je l'ai fait fonctionner en faisant ce qui suit:

  1. Copiez le dossier Tessdata où mon application fonctionne
  2. Spécifiez ensuite un paramètre de chemin de données vide (apparemment TessData / est ajouté à Datapath par défaut). Ce code a fonctionné:

_ocr = new Tesseract ("", "Eng", Tesseract.ocrenneMode.oem_tesseract_cube_combined);

Autres conseils

Le premier paramètre est l'emplacement du fichier. La pointe aurait dû être le signe "@" utilisé pour annuler le caractère d'échappement "". Ceci est généralement utilisé pour les chemins pour éviter le .

Vérifier si TESSDATA_PREFIX La variable d'environnement est définie (supprimer son application et redémarrer). J'ai eu ce même problème ...

J'ai eu exactement le même problème, compilant VB2010 X64, et le correctif supprimait le TESSDATA_PREFIX variable d'environnement système.

Copiez le dossier «Tessdata» qui est dans Bin of Emgu sur votre projet Bin, dans mon cas, cela fonctionne.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top