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

OpenGL Discussion :

Calibration OpenCV et rendu OpenGL


Sujet :

OpenGL

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2012
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 11
    Points : 10
    Points
    10
    Par défaut Calibration OpenCV et rendu OpenGL
    Bonjour,

    Je cherche à recaler dans l'espace une image dont j'ai une représentation 3D sous forme de mesh. J'ai effectué une calibration de caméra avec OpenCV à l'aide de correspondances 2D-3D entre l'image et le mesh, J'obtiens alors une matrice de projection 3x4 qui est cohérente (l'erreur de reprojection est de l'ordre de quelques pixels) et que je peux décomposer en K * [R t] (paramètres intrinsèques et paramètres extrinsèques).

    Je souhaiterais générer maintenant le rendu du mesh du point de vue de cette caméra dont je viens de calculer la matrice de projection, afin de superposer ce rendu avec mon image d'origine.

    J'ai cru comprendre que le moyen le plus simple pour faire ça était de passer par openGL, exact?
    Un point important, c'est que lors de ma décomposition, je trouve une matrice K de la forme :
    [ fx skew cx ]
    [ 0 fy cy ]
    [ 0 0 1 ]
    où mon skew est non négligeable (d'habitude il est courant de faire l'approximation skew ~ 0)

    Si c'est bien openGL que je dois utiliser, est-ce facile de passer de la matrice de projection 3*4 donnée par openCV à qqchose d'utilisable par openGL (je n'ai jamais utilisé openGL mais d'après ce que j'ai lu les conventions ne sont pas du tout les mêmes)?
    Et c'est possible ensuite d'importer facilement un mesh (en .ply / .obj ou autre), et d'en afficher le rendu à l'aide de ces matrices openGL (sachant que je peux avoir des mesh assez complexes)?

  2. #2
    Expert éminent sénior

    Avatar de dragonjoker59
    Homme Profil pro
    Software Developer
    Inscrit en
    Juin 2005
    Messages
    2 031
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Software Developer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 2 031
    Points : 11 474
    Points
    11 474
    Billets dans le blog
    11
    Par défaut
    Je ne dirais pas que c'est facile, ni difficile d'ailleurs.
    Côté C (ou C++) il va te falloir créer un VBO contenant les vertex (position, normales s'il y a, coordonnées de texture s'il y a) de ton mesh.
    Ensuite tu vas devoir écrire un shader (vertex et fragment suffiront) qui prend en paramètre ta matrice de projection (en fonction des cartes graphiques les matrices 3x4 ou 4x3 seront prises en charge, sinon il faudra que tu remplisses une 4ème ligne/colonne toi-même afin de passer une matrice 4x4 classique) et les vertex de ton mesh.
    Il y a des tutoriaux OpenGL bien faits sur DVP, ici qui te permettront de réaliser ces choses.
    Si vous ne trouvez plus rien, cherchez autre chose...

    Vous trouverez ici des tutoriels OpenGL moderne.
    Mon moteur 3D: Castor 3D, presque utilisable (venez participer, il y a de la place)!
    Un projet qui ne sert à rien, mais qu'il est joli (des fois) : ProceduralGenerator (Génération procédurale d'images, et post-processing).

Discussions similaires

  1. import COLLADA => rendu openGL
    Par crischprolch dans le forum OpenGL
    Réponses: 1
    Dernier message: 05/06/2008, 15h36
  2. (c#)ou(c++)Rendu OpenGl sur une Bitmap
    Par pointer dans le forum OpenGL
    Réponses: 2
    Dernier message: 02/03/2008, 15h08
  3. Rendu OpenGl Offscreen
    Par mrshadow dans le forum OpenGL
    Réponses: 10
    Dernier message: 19/06/2007, 12h39
  4. Rendu OpenGL sur un thread tier.
    Par Groove dans le forum OpenGL
    Réponses: 3
    Dernier message: 15/02/2007, 11h36
  5. Rendu OpenGL offscreen sous Windows
    Par rincevent_123 dans le forum OpenGL
    Réponses: 3
    Dernier message: 28/11/2003, 09h23

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