2015-08-20 5 views
0

J'essaie d'intégrer Tesseract OCR avec mon application xHarobur + Borland C++. Dans mon test Win7 machine tout fonctionne bien, mais quand je déplace tout à la machine cible - également Win7 - l'application ne parvient pas à charger le module de langue (eng.Traineddata). En résumé, TessBaseAPIInit3 (handle, NULL, "eng") renvoie toujours 0 sur la machine cible alors qu'il fonctionne parfaitement sur ma machine dev. Le code jusqu'à cette ligne ressemble à ceci:Tesseract OCR ne parvient pas à charger la langue

... 
handle := TessBaseAPICreate() 
IF TessBaseAPIInit3(handle, NIL, "eng") != 0 
    logfile("trace.log", {"Tesseract fails to load language module", handle }) 
... 

Le fichier journal affiche une valeur valide pour gérer comme prévu. Par conséquent, nous pouvons supposer que TessBaseAPICreate() renvoie un handle valide.

Dans un effort pour déboguer le problème, j'ai installé le programme d'installation Tesseract.exe sur la machine cible et j'ai pu exécuter la ligne de commande Tesseract.exe en obtenant des résultats positifs.

Les informaticiens me disent que le répertoire complet dans lequel mon application est installée, où réside également eng.traineddata, est en liste blanche.

Des idées comment déboguer ce problème?

Répondre

0

Je pense que ce sera une bonne idée de lister tous les modules de langue supportés sur la machine cible.

+0

Ritesh- c'est une bonne idée. Comment obtenez-vous tous les modules de langue pris en charge? Y a-t-il une fonction api pour le faire? –

+0

@reinaldo Je ne connais pas l'API exacte. Mais c'est une pratique générale des auteurs de bibliothèques pour exposer les apis comme ceux-ci. Je pense que si vous essayez de trouver dans le jeu de l'API publique, vous devriez être capable de trouver. – Ritesh

0

Je pense avoir trouvé le problème. Il semble que l'application doit être exécutée avec des autorisations utilisateur plus élevées afin de pouvoir charger le module de langue. Jusqu'à présent, j'ai pu exécuter comme prévu tant qu'il est exécuté en tant qu'administrateur.