Bienvenue sur le forum !

Si vous souhaitez rejoindre la communauté, cliquez sur l'un de ces boutons !

Qt 5 : 5.9.1 - Qt Creator : 4.4.0 - Qt Installer : 2.0.3 - JOM : 1.1.2 - Qt Build suite : 1.7.0 - VS Qt 5 : 2.0.0

QT et camera AVT GIGe Manta

September 2016 modifié dans Qt / Langage C++
Bonjour à tous,
Je commence à projet où je dois utiliser une camera type AVT GIGe Manta.
Si quelqu'un à une expérience sur ce sujet ... je suis preneur car je ne connais ni les lib ni les usages.
Dans le cas contraire je mettrai un tuto quand j'aurai réussi ;)

Pour le moment j'ai télécharger un AVT SDK (http://answers.opencv.org/question/25497/how-do-i-get-allied-vision-camera-gc2450c-working-with-opencv-24/) mais il semble falloir compiler OpenCV avec AVT SDK et la ...?????
Merci de votre aide.
«13

Réponses

  • Hello
    mais il semble falloir compiler OpenCV avec AVT SDK et la ...?????
    C'est pas si compliqué n'ai pas peur ;-) Télécharge la dernière version d'OpenCV et suit leur tuto, ou bien le mien que j'avais fait (http://qtfr.dergen.fr/discussion/13427/opencv-et-qt/p1).

    Le enabling the WITH_PVAPI functionality se fait dans CMake-GUI avant le configure. Il y a une liste d'options et elle devrait normalement se trouver dedans, il suffit de l'activer.

    Edit: après une recherche rapide sur le site d'Allied Vision ils indiquent que Vimba 2.0 est leur dernier SDK, tu devrais peut-être y jeter un oeil avant de t'embarquer là dedans ;-) https://www.alliedvision.com/en/products/software.html
    Sur le post d'OpenCV ils parlent de PvAPI, qui n'est plus supporté (legacy).

    Bonne lecture, et bon courage ;-)
  • Alors, déjà bien el bonjour et merci BBenj,

    J'ai regardé tout cela, Vimba semble en effet être la solution, il y a des exemples en cpp, les lib include bin ... et j'essai donc de faire marcher le plus simple des exemples qui listes les caméras connectées à mon pc.
    Comme d'habitude, je ne doit pas bien faire les link dans le .pro parce qu'il me dit qu'il ne trouve pas les .h spécifique à Vimba, pourtant je pensais avoir compris ca :
    j'ai dans l'exemple un #include "VimbaCPP/Include/VimbaCPP.h"

    Fichier qui est à l'emplacement suivant :
    D:\Travail\Ancien projet\MovingJoystick\Vimba_2.0\Exemples\VimbaCPP_Source\VimbaCPP\Include

    j'ai donc ajouté :
    INCLUDEPATH += D:\Travail\Ancien projet\MovingJoystick\Vimba_2.0\Exemples\VimbaCPP_Source
    LIBS += -LD:\Travail\Ancien projet\MovingJoystick\Vimba_2.0\VimbaCPP\Lib\Win32 -lVimbaCPP

    mais mon imbaCPP.h no such file ... j'ai oublié quoi ?
  • C'est probablement l'espace dans le chemin qui pose problème. Je suppose que Qt Creator ne te propose pas le fichier via l'autocomplétion ?

    Rajoute des double quote autour du chemin, ça devrait fonctionner.
    INCLUDEPATH += "D:\Travail\Ancien projet\MovingJoystick\Vimba_2.0\Exemples\VimbaCPP_Source"
    LIBS += -L"D:\Travail\Ancien projet\MovingJoystick\Vimba_2.0\VimbaCPP\Lib\Win32" -lVimbaCPP
    Sinon, supprime l'espace du dossier :-p

    À voir aussi s'il faut pas doubler les \ ? Windows...
  • September 2016 modifié
    Ba j'ai installer tout ca dans un autre répertoire sans espace et figure toi que c t ca ... les / et " peu importe. Je trouve ca triste en 2016 sérieux -_-
    Je continue a essayer de faire marcher le plus simple des exemples (seulement 3h que j'essai, la il me dis "function NomDeLaFct definition is marked dllimport"
    Je suppose que c'est un pas en avant depuis le no such file ... donc on pleure pas et on continue :D
    Ca pue l'erreur de += dans mon .pro je trouve ...
    En faite mon erreur c'est ca :
    http://stackoverflow.com/questions/20644151/error-function-definition-is-marked-dllimport
    moi pas comprendre :s

    Juste pour être sur j'ai vu ca (https://community.leapmotion.com/t/qt-creator-c-help/169/6) et le fait que j'utiliser mingw et pas du VS ne risque pas de me porter préjudice quand même ?
    Je haie les Library -_-

    PS : j'avais jamais vu le mot auto complétion, c'est un put**n de mot dit donc :D
  • D'après ce que j'ai pu trouver, il y a plusieurs possibilités :
    - Si la lib est compilée avec VS, pas le choix d'utiliser VS,
    - Faire comme sur StackOverflow, ajouter IMEXPORT à la classe et définir AVT_VMBAPI_CPP_EXPORTS dans le pro (si c'est la même lib que tu utilises ?),
    - Aller pleurer. Et revenir ;-P

    Est-ce que les exemples fournissent également un makefile ? Ce sont des projets complets ? Il manque peut-être un flag au compilateur, qui sera dans le makefile de l'exemple s'il y en un.

    Poste un peu de code / un exemple (ou upload un zip) si tu n'arrives à rien, ça aidera peut-être à y voir plus clair.
    PS : j'avais jamais vu le mot auto complétion, c'est un put**n de mot dit donc :D
    Et encore y'a pire ;-) Heureux d'avoir pu t'apprendre qqch :D
  • October 2016 modifié
    Cc BBenj,

    > Faire comme sur StackOverflow, ajouter IMEXPORT à la classe et définir AVT_VMBAPI_CPP_EXPORTS dans le pro (si c'est la même lib que tu utilises ?),

    J'utilise bien le sdk vimba 2.0 comme dans l'exemple. J'ai ajouté #define AVT_VMBAPI_CPP_EXPORTS dans mon .h et ca résout cette erreur ... mais maintenant il me dit undefined reference to "les fonctions du sdk les unes après les autres"

    Je met à jour mon message au fur et à mesure de mon avancement, ainsi que les fichier zip.
    En tout cas merci pour l'accompagnement ;)
    A bientôt.

    Ci dessous le zip de l'exemple fourni dans le sdk :
    zip
    zip
    ListCameras.zip
    15K
  • October 2016 modifié
    Avec un fichier program.zip (ci-dessous) maj de ma version Qt de l'exemple fourni dans le sdk, qui bug à la compilation à la 1ere fonction du SDK appelée
  • October 2016 modifié
    voila dir.zip contenant les fichiers de la bibliothèque à minima
    zip
    zip
    dir.zip
    15K
  • program.zip
    zip
    zip
    program.zip
    5K
  • Hello,

    Ajoute dans le .pro la ligne suivante :
    DEFINES += AVT_VMBAPI_CPP_EXPORTS
    Ça devrait "dire" à la librairie qu'il faut exporter les symboles et non les importer, et ça devrait compiler.
    Si tu fait dans Qt Creator un Ctrl-clic sur IMEXPORT dans IFeatureObserver, il devrait t'emmener là où est défini IMEXPORT, dans le fichier VimbaCPPCommon.h. Si tu as défini AVT_VMBAPI_CPP_EXPORTS dans le .pro, c'est la ligne suivante qui devrait être "active" :
    #define IMEXPORT __declspec(dllexport)
    Sinon par défaut c'est dllimport, ce qui ne convient pas dans ton cas.
  • Merci pour ce retour BBenj,

    J'avais mis le define avt dans mon .h
    J'ai changé pour le mettre dans le .pro comme tu me le conseil pour être en dllexport et pas en import, mais mes fonctions sont toujours undefined.
    Mais que cette définition soit ajouté au .h ou au .pro l'erreur "definition is marked dllimport" est bien remplacé par l'erreur "undefined reference"
    C'est mieux non ? :D
    Je sent qu'on est proche ...
  • Poste toujours les erreurs aux complet, parce que là c'est pas suffisant ;-)

    J'ai tout installé sur un Win 7 Pro et ton code compile sans erreurs, donc ça vient de toi :D ;-)
  • October 2016 modifié
    Tu me tues en disant que ca marche chez toi ... tu as pris mon program.zip ou l'exemple du SDK ?
    Tu utilises QT en win32 avec mingw ? parce que je suis aussi en Win7 pro

    Pour le message d'erreur, un imprime écran vau mieux qu'un long discourt ...
    png
    png
    Sans titre.png
    268K
  • Qt 5.7, Mingw 5.3 32bit, Win 7 Pro 64bit.

    Malheureusement le long discourt est nécessaire ;-) Fait un copier coller de la sortie de compilation.
    Ça ne doit pas être grand chose.
  • J'ai l'impression que tu as fait un peu trop de nettoyage dans tes fichiers, le ListCameras.cpp que j'ai est un peu plus fourni :
    #include <sstream>
    #include <iostream>
    #include <vector>
    #include <algorithm>

    #include "ListCameras.h"

    #include "VimbaCPP/Include/VimbaCPP.h"
    #include "Exemple/VimbaCPP_Examples/Common/StreamSystemInfo.h"
    #include "Exemple/VimbaCPP_Examples/Common/ErrorCodeToMessage.h"

    namespace AVT {
    ...
  • October 2016 modifié
    Qt 5.3, mingw 32bits, win 7 pro 64 bits xD
    La sortie de compilation est dans le fichier joint pour ne pas pourrir notre page de discussion

    PS : j'ai mis les include dans le .h mais je les remet dans le cpp pour le moment ...
    txt
    txt
    sortie de compilation.txt
    4K
  • Fait un nettoyage du projet puis qmake puis compile à nouveau.
  • Le résultat est le même ... j'ai tout mis en PJ.
    C'est ouf, ca doit être une connerie, quand on aura trouver je vais me détester je le sent :D
    txt
    txt
    nettoyage.txt
    1K
    txt
    txt
    qmake.txt
    346B
    txt
    txt
    compil.txt
    4K
    zip
    zip
    program.zip
    4K
  • October 2016 modifié
    AAAAAAAAAAAAAAA je comprends rien f**k
  • Bon en fait ça compile pas, le code lié à la lib Vimba était commenté (pas fait gaffe x) ), du coup ça passait :D J'ai les mêmes erreurs que toi.

    Effectivement la lib est compilé pour VS2010, il faut la recompiler pour utiliser d'autres compilateurs.
  • October 2016 modifié
    aaaaaaaaaaaa tu me rassure.
    Je creuse, je creuse ... tiens un chinois :D

    Bon avant de recompiler j'ai copié tous les CPP et h dans mon projet direct en supprimant les libs+= et includepath+= et en adaptant les include, et ca marche toujours pas. La je me dis que c grave :s En plus comme les mec ont bien fait les choses, y a pas de fichiers cmakelists ... la ils me demandent des trucs que je sais pas faire je crois :s
  • Tu peux utiliser Qt pour créer une librairie.

    Ci-joint un zip avec un projet Qt de la librairie VimbaCPP et ton projet d'exemple. Ça compile, ça se lance, mais je n'ai aucune caméra pour tester ;)
    Il y a aussi toutes les dll dedans, tu peux même essayer de lancer l'exe "program" directement, ça marchera peut-être...

    Sinon/ensuite il faut que tu reprennes les projets en modifiant les chemins dans les .pro (includepath et libs).
    zip
    zip
    AVT.zip
    4M
  • October 2016 modifié
    Alors je sais même pas comment tu as fait et va falloir qu'on en parle , mais pour le moment le seul truc qui m'inquiète c'est qu'il y a un cout dans le main, et que je ne vois pas ce texte s'afficher ... donc j'ai encore du faire une connerie :D
    Je check et je re ... merci juste de me dire si toi tu voi "Vimba API List Cameras Example" dans ta fenetre ou s'il te dis juste de taper entrée pour sortir ...
    Quand je lance le programme la fenetre s'ouvre bien mais le programme se termine avec le code -1073741515 au lieu de 0, toi aussi ou sa coince juste chez moi ?
  • J'ai bien le texte oui ^^

    Va falloir donner plus de détails sur ce que tu as fait et comment tu l'as fait ;)

    Essaye pour commencer par le lancer dans Qt Creator et pas dans la console (options du projet, executer, décocher lancer dans la console), et poste la sortie de l'application.
    Essaye aussi de lancer l'exe depuis l'explorer. Tu as peut-être des libraries qui manquent.
  • en lançant dans Qt ca s'affiche en debug, et meme en console et meme en mode release
    - J'ai copier ton rep program à la place de mon program
    - J'ai pas regardé le projet build-program-Desktop_Qt_5_7_0_MinGW_32bit-Debug
    - J'ai copier les répertoires du répertoire VimbaCPPLib pour que ce soit exactement comme ton include (oui j'ai créé la même arborescence que toi plutôt que de changer le .pro ;)
    - J'ai décommenté le DEFINES += AVT_VMBAPI_CPP_EXPORTS sinon ca ne marche pas

    Je vais tester avec la cam et je re ... mais j'aurais bien aimer savoir ce que tu as fait (comment tu as compiler le dossier "VimbaCPP_Source\VimbaCPP", qu'as tu changer dans le projet ...)
    Et puis va falloir que je te remercie pour ta patience, moi qui me suis énerver alors que c'est mon problème, alors toi c'est même pas le tiens ...
    Comment te dire merci ? :) (bon ok je vai voir si ca détecte la cam avant de dire merci :D)
  • Tu as copié tout le contenu de VimbaCPPLib, fichiers inclus ? Normalement le define AVT_VMBAPI_CPP_EXPORTS est nécessaire et il ne devrait pas gêner.
    Mais attention j'ai modifié certains fichiers, je ne saurais pas dire lesquels exactement (fait un diff pour les trouver), j'ai uniquement déplacé certains IMEXPORT (dans VimbaSystem.h, parmi d'autres).

    Pour la lib j'ai créé un projet de librairie dans QT Creator et j'ai ajouté tous les fichiers de la lib, en linkant avec VimbaC.lib. Quelques modifs et ça compile... ^^ Bon ça ne veut pas dire que tout fonctionnera, à tester hein ;)

    Avoir de la patience et rester calme est très utile dans ces cas là ;) Moi je ne m'énerve pas parce que ça n'améliore pas les choses, c'est de "ma faute" si ça ne marche pas, et puis, ça sert à rien :D
  • Alors oui j'ai tout copié dans VimbaCPPLib. Le fichier dll suffit ?
    Pour les différences et la compil, je vais le refaire moi même pour être sur d'avoir compris (demain).

    Je croirai entendre mon père : "c'est pas la machine qui fait une erreur c'est toi mon fils" xD AAAAAAAAAAAAA
    Moi quand j'y arrive pas j'ai l'impression de perdre mon temps et je fini par culpabiliser de pas savoir faire, et ça m'énerve.

    J'ai testé avec la cam branché : il la trouve !!!!
    Maintenant je vais voir si je peux avoir l'image, les données de calibrage ...
    Mais ca c'est mon problème, je te remercie déjà beaucoup beaucoup beaucoup !!!!et je te tiens au courant pour la suite.
    Merci pour le temps passé pour me débloquer, je sais pas comment te remercier ;)
  • Il te faut simplement la dll ensuite dans tes projets oui.

    Le problème vient de l'interface entre la chaise et le clavier ! :p

    Bon courage alors, teste bien tout ça ^^ Bon devs :)

    (la prochaine épreuve sera peut-être OpenCV... ;) )
  • December 2016 modifié
    Je suis de retour et j'ai un problème ...
    La bib Vimba est pleine d'exemples (qui marche) avec le code. Il y a même du code Qt, faudrait vraiment être idiot pour ne pas si retrouver, mais pourtant je ne vois pas de .pro ce qui fait que certain problème demeure.
    Exemple, un petit prog tout simple qui affiche ce que film la cam en direct (très pratique pour ce que je veux faire) me dit qu'il le trouve pas le fichier ui_AsynchronousGrab.h, mais en effet ce fichier n'excite nul part dans la bib ... et pourtant le .exe de se proj tourne bien.
    A mon avis, il me manque surtout une connaissance, parce que j'ai installé tous les fichiers de cette librairie. Est-ce que quelqu'un à une idée ? Je joins mon projet test ainsi que l'exe, si quelqu'un aime les défi et je continue a chercher de mon coté.
    Je précise que j'ai ajouté à mon proj tous les .dll nécessaire pour que l'exe ce lance.
  • le fichier
    zip
    zip
    Test.zip
    7M
Connectez-vous ou Inscrivez-vous pour répondre.