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

Abbyy Discussion :

Utilisation API FineReader Engine


Sujet :

Abbyy

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    118
    Détails du profil
    Informations personnelles :
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations forums :
    Inscription : Juin 2004
    Messages : 118
    Points : 48
    Points
    48
    Par défaut Utilisation API FineReader Engine
    Bonjour,

    je dois développer une application d'OCR basée sur le SDK FineReader de chez ABBYY.
    J'ai déjà réalisé ce genre de choses sous VB.net

    Mon souci, c'est que sous Windev (14 en l'occurence), je suis totalement perdue.

    Je vous donne le code qui va bien en VB.net.
    Peut-être quelqu'un pourra-t-il m'expliquer comment traduire tout ça (rassurez-vous, c'est pas énorme)...
    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    Module 1 :
    Public Engine As FREngine.Engine
    Private Declare Auto Function GetEngineObject Lib "FREngine.dll" ( _
    ByVal devSN As String, _
    ByVal opLicPathName As String, _
    ByVal opLicPassword As String, _
    ByRef engineObj As FREngine.Engine) As Integer
    Private Declare Function DeinitializeEngine Lib "FREngine.dll" () As Integer
    
    Public Sub LoadFREngine()
    If Not Engine Is Nothing Then Exit Sub
    Dim DevSN As String
    DevSN = "xxx-xxxx-xxxx"
    Dim ret As Integer
    ret = GetEngineObject(DevSN, "", "", Engine)
    System.Runtime.InteropServices.Marshal.ThrowExceptionForHR(ret)
    End Sub
    FIN
    
    MAIN
    LoadFREngine()
    Engine.StartLogging("C:\log.txt", True)
    Dim ImageDoc As FREngine.ImageDocument
    Dim bcParams As FREngine.BarcodeAnalysisParams
    ImageDoc = Engine.PrepareAndOpenImage(chemin_image)
    Dim Layout As FREngine.Layout
    Layout = Engine.CreateLayout()
    bcParams = Engine.CreateBarcodeAnalysisParams()
    bcParams.BarcodeParameters.Type = FREngine.BarcodeTypeEnum.BT_Code39
    Engine.ExtractBarcodes(ImageDoc, bcParams, Layout)
    MsgBox(Layout.TextAsString) 
    FIN
    Merci beaucoup

  2. #2
    Membre confirmé
    Profil pro
    Freelance
    Inscrit en
    Avril 2003
    Messages
    393
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Freelance

    Informations forums :
    Inscription : Avril 2003
    Messages : 393
    Points : 492
    Points
    492
    Par défaut
    Salut,

    Si ma mémoire est bonne, tu dois avoir un wrapper à compiler qui te permet d'utiliser l'objet Engine.
    A+
    Vince

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    118
    Détails du profil
    Informations personnelles :
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations forums :
    Inscription : Juin 2004
    Messages : 118
    Points : 48
    Points
    48
    Par défaut
    Il faut donc que je passe par le Wraper? Dans l'aide, j'ai trouvé ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    // create the FRELoader object
    FRELoader = new ActiveXObject( "FREngineWrap.FRELoader" );
    ...
    // load the library
    FRELoader.Load( );
    ...
    // get the Engine object
    var Engine = FRELoader.EngineObject;
    Par contre, avec Winedv, je suis obligée de passer par un champ ActiveX ou je peux le faire directement par programmation comme ci-dessus?

  4. #4
    Membre confirmé
    Profil pro
    Freelance
    Inscrit en
    Avril 2003
    Messages
    393
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Freelance

    Informations forums :
    Inscription : Avril 2003
    Messages : 393
    Points : 492
    Points
    492
    Par défaut
    Ca fait plusieurs années que je n'ai pas touché FineReader, mais encore de mémoire, tu n'es pas obligé d'utiliser d'activeX (je crois que c'est plutot automation en plus)
    A+
    Vince

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    118
    Détails du profil
    Informations personnelles :
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations forums :
    Inscription : Juin 2004
    Messages : 118
    Points : 48
    Points
    48
    Par défaut
    Si je te suis bien, je compile le Wrapper afin d'avoir la dll qui me permet de piloter l'objet Engine. Ensuite tout se passe en automation?

    ce sont des choses que je n'ai jamais utilisé avec Windev, je suis donc un peu perdue...

    Une fois que j'ai trouvé comment je compile le wrapper, je me sers des fonctions API?
    - je crée mon objet Engine ave la fonction API?
    - comment je déclare mes variables de type Engine.ImageDocument?

  6. #6
    Membre confirmé
    Profil pro
    Freelance
    Inscrit en
    Avril 2003
    Messages
    393
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Freelance

    Informations forums :
    Inscription : Avril 2003
    Messages : 393
    Points : 492
    Points
    492
    Par défaut
    Oui en gros cest ca. Après je ne me souviens plus des methodes
    A+
    Vince

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    118
    Détails du profil
    Informations personnelles :
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations forums :
    Inscription : Juin 2004
    Messages : 118
    Points : 48
    Points
    48
    Par défaut
    Bonjour,

    je ne parviens pas à compiler le wrapper... Comment dois-je m'y prendre?

    Merci

  8. #8
    Membre confirmé
    Profil pro
    Freelance
    Inscrit en
    Avril 2003
    Messages
    393
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Freelance

    Informations forums :
    Inscription : Avril 2003
    Messages : 393
    Points : 492
    Points
    492
    Par défaut
    Bonjour,

    Encore de mémoire, il faut charger avec visual C++ je crois et compiler pour générer une Dll.
    A+
    Vince

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    118
    Détails du profil
    Informations personnelles :
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations forums :
    Inscription : Juin 2004
    Messages : 118
    Points : 48
    Points
    48
    Par défaut
    Effectivement, j'ai réussi à générer les dll et à l'enregistrer.
    En revanche, comment est-ce que je crée l'objet Engine?
    Dans les exemples en VB sur la documentation ABBYY, j'ai trouvé ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Set FRELoader = CreateObject( "FREngineWrap.FRELoader" )
    ...
    ' load the library
    FRELoader.Load 
    ...
    ' get the Engine object
    Set Engine = FRELoader.EngineObject
    J'ai tenté de le traduire, mais ma méthode Load est rejetée...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    FRELoader est un objet Automation "FREngineWrap.FRELoader"
    
    // load the library
    FRELoader>>Load()
    
    // get the Engine object
    Engine est un objet Automation dynamique
    ImageDoc est un objet Automation dynamique
    bcParams est un objet Automation dynamique
    Engine = FRELoader>>EngineObject
    ImageDoc=Engine>>ImageDocument
    bcParams= Engine>>BarcodeAnalysisParams
    ImageDoc = Engine>>Prepare
    peux-tu me dire ce que tu en penses?

  10. #10
    Membre confirmé
    Profil pro
    Freelance
    Inscrit en
    Avril 2003
    Messages
    393
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Freelance

    Informations forums :
    Inscription : Avril 2003
    Messages : 393
    Points : 492
    Points
    492
    Par défaut
    Essaye avec le tool WDTypeLib

    J'ai uploadé ici:

    www.syscode.fr/wdtypelib.zip

    A+
    Vince

  11. #11
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    Bonjour,

    auriez vous la dll concernant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    // create the FRELoader object
    FRELoader = new ActiveXObject( "FREngineWrap.FRELoader" );
    ...
    // load the library
    FRELoader.Load( );
    ...
    // get the Engine object
    var Engine = FRELoader.EngineObject;
    je n'ai pas de compilateur C++

  12. #12
    Membre confirmé
    Profil pro
    Freelance
    Inscrit en
    Avril 2003
    Messages
    393
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Freelance

    Informations forums :
    Inscription : Avril 2003
    Messages : 393
    Points : 492
    Points
    492
    Par défaut
    Bonjour,

    Vous pouvez télécharger codeblocks. C'est gratuit et ca fonctionne très bien.
    A+
    Vince

  13. #13
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    118
    Détails du profil
    Informations personnelles :
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations forums :
    Inscription : Juin 2004
    Messages : 118
    Points : 48
    Points
    48
    Par défaut
    Bonjour,

    je continue mes recherches, mais j'avoue que c'est pas gagné.
    Je ne parviens pas à trouver le nom du serveur automation.

    Si quelqu'un a déjà réalisé ce genre de projets, ça me réconforterait. Si je m'écoutais, je lui demanderais de m'envoyer son code par mail

  14. #14
    Membre confirmé
    Profil pro
    Freelance
    Inscrit en
    Avril 2003
    Messages
    393
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Freelance

    Informations forums :
    Inscription : Avril 2003
    Messages : 393
    Points : 492
    Points
    492
    Par défaut
    Envoyer moi la DLL, je vais voir, mais je n'ai plus le code sous la main.
    J'ai juste un code en .net utilisant FlexiCapture, mais ce ne sont pas les memes methodes.

    Essaye avec:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    FRELoader  est un objet Automation dynamique 
    FRELoader  = allouer un objet Automation "FREngineWrap.FRELoader.9"
    A+
    Vince

  15. #15
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    118
    Détails du profil
    Informations personnelles :
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations forums :
    Inscription : Juin 2004
    Messages : 118
    Points : 48
    Points
    48
    Par défaut
    Effectivement, je n'ai pas d'erreur sur cette déclaration.

    Du coup, comment dois-je déclarer les variables qui dépendent de FRELoader, tels que EngineObject, ImageDocument, ...?

  16. #16
    Membre confirmé
    Profil pro
    Freelance
    Inscrit en
    Avril 2003
    Messages
    393
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Freelance

    Informations forums :
    Inscription : Avril 2003
    Messages : 393
    Points : 492
    Points
    492
    Par défaut
    Je ne me souviens plus des méthodes. Il faudrait que vous preniez le document regroupant les methodes, objets qui doit etre fourni avec l'installation. De plus, regardez les samples, ca devrait bien vous aider.
    A+
    Vince

  17. #17
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    118
    Détails du profil
    Informations personnelles :
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations forums :
    Inscription : Juin 2004
    Messages : 118
    Points : 48
    Points
    48
    Par défaut
    J'ai exécuté DLLExportViewer qui m'a donné la liste des méthodes et propriétés.

    Il y a une la méthode suivante : IFRELoader::Load

    Malheureusement quand j'execute le code suivant:
    j'ai un message d'erreur.
    Dans les exemples VBScript fournis avec le SDK, aprés la déclaration de l'objet FRELoader, il faut exécuter cette méthode.

    Des idées?

  18. #18
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    118
    Détails du profil
    Informations personnelles :
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations forums :
    Inscription : Juin 2004
    Messages : 118
    Points : 48
    Points
    48
    Par défaut
    J'essaie d'avancer doucement mais surement...

    En essayant de tester l'exemple TextPlain.vbs livré avec le SDK, j'ai un message d'erreur disant que l'ActiveX ne peut être créé. Quelqu'un a-t-il eu également ce pb?

  19. #19
    Membre confirmé
    Profil pro
    Freelance
    Inscrit en
    Avril 2003
    Messages
    393
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Freelance

    Informations forums :
    Inscription : Avril 2003
    Messages : 393
    Points : 492
    Points
    492
    Par défaut
    Bonjour,

    Les exemples livrés fonctionnaient très bien. Vous pouvez contacter le support. Ils sont très sympa et réactifs.
    Sinon, peut etre essayé de reinstaller finereader.
    A+
    Vince

Discussions similaires

  1. Réponses: 1
    Dernier message: 31/10/2013, 20h41
  2. Réponses: 15
    Dernier message: 23/03/2009, 16h07
  3. [VB.NET 2005] Utilisation Api Avifil32
    Par guillaume1998 dans le forum C++/CLI
    Réponses: 1
    Dernier message: 01/09/2006, 14h09
  4. C# utilisation api google
    Par mohican13 dans le forum Windows Forms
    Réponses: 2
    Dernier message: 20/07/2006, 08h03
  5. Problème utilisation API MySQL
    Par naiko dans le forum C
    Réponses: 4
    Dernier message: 11/05/2006, 09h55

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