IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques C++ Discussion :

OCR Tesseract : Init refuse de fonctionner


Sujet :

Bibliothèques C++

  1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2014
    Messages : 6
    Points : 10
    Points
    10
    Par défaut OCR Tesseract : Init refuse de fonctionner
    Bonjour à tous,

    Je suis actuellement en train de coder une application ayant pour but d'anonymiser des données médicales.
    Une partie du travail que je cherche à effectuer est de supprimer le texte incrusté dans l'images dicom (pas dans les tags).
    Pour cela j'ai cherché différentes solutions et la meilleure m'a semblé l'utilisation d'une librairie d'OCR après l'export de l'image dans un autre format.
    Mon but est de trouver les zones de textes (sans nécessairement savoir ce qui est écrit) puis de les effacer.

    Voici mes différentes questions :
    Y a-t-il une meilleure solution à mon problème que celle que j'ai trouvé ?

    Si non, comment corriger mon problème :
    J'ai repris les codes trouvés en exemple sur internet (sachant que mes include et librairies sont bien trouvées) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    // Initialize tesseract-ocr with English, without specifying tessdata path
    if(api->Init(NULL, NULL, tesseract::OEM_TESSERACT_ONLY, NULL, 0, NULL, NULL, false)) { 
    	exit(1);
    }
     
    // Open input image with leptonica library
    Pix *image = pixRead("p13a.tiff");
    api->SetImage(image);
     
    // Get OCR result
    char *outText = api->GetUTF8Text();
     
    // Destroy used object and release memory
    api->End();
    delete [] outText;
    pixDestroy(&image);
    La fonction Init me retourne systématiquement -1 (l'initialisation échoue).
    J'ai essayé toutes sortes d'Init telles que : api->Init("C:\temp\tessdata", "eng")
    mais aucune ne semble marcher et je n'arrive pas a comprendre pourquoi.

    Je n'ai jamais posté aucun topic en 5 ans de programmation, mais la j'avoue ne pas avoir trouvé de solution seul.

    Merci de votre aide

  2. #2
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2014
    Messages : 6
    Points : 10
    Points
    10
    Par défaut
    J'arrive ce matin au boulot, et je remplace mon init par
    api->Init("C:\\BuildFolder\\tesseract-eng_data\\tessdata", "eng", tesseract::OEM_DEFAULT)

    (ajout de \\ au lieu de \ et ajout du paramètre tesseract::OEM_DEFAULT)
    et tout fonctionne
    je pense avoir déjà fait ça hier, je me demande si le redémarrage de l'ordi n'a pas mis une variable d'environnement ou autre, mais le problème est résolu

  3. #3
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 115
    Points : 32 967
    Points
    32 967
    Billets dans le blog
    4
    Par défaut
    \ est un caractère particulier dans une chaîne, pour avoir un \ il faut le doubler en \\
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Requête refusant de fonctionner
    Par luffy48 dans le forum Requêtes
    Réponses: 2
    Dernier message: 03/05/2012, 13h29
  2. [CakePHP] Recursivité dans les modèles refuse de fonctionner
    Par RideKick dans le forum Bibliothèques et frameworks
    Réponses: 6
    Dernier message: 26/10/2009, 08h51
  3. [OCR] Tesseract & Reconnaissance des plaques minéralogiques
    Par Bourak dans le forum Traitement d'images
    Réponses: 3
    Dernier message: 04/11/2008, 09h40
  4. [Apache2.2+Php5] Php5 refuse de fonctionner ..
    Par straitch dans le forum Apache
    Réponses: 15
    Dernier message: 25/08/2008, 17h34
  5. Requête DELETE qui refuse de fonctionner chez Free
    Par fafafa dans le forum Requêtes
    Réponses: 4
    Dernier message: 05/06/2006, 15h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo