visualiser objet dessiner en opengl dans une fenêtre opencv

visualiser objet dessiner en opengl dans une fenêtre opencv - C++ - Programmation

Marsh Posté le 08-06-2010 à 22:32:03    

bonjour,
j'ai dessiné une cylindre 3d en opengl et je voudrais l'afficher ou visualiser dans une fenêtre opencv est ce que je peux faire ça et comment ?


Message édité par dreamvig le 08-06-2010 à 23:17:52
Reply

Marsh Posté le 08-06-2010 à 22:32:03   

Reply

Marsh Posté le 09-06-2010 à 00:17:10    

Je ne sais pas trop comment marche openGL, mais si tu as en sortie une image 2D, tu devrais pouvoir la mettre dans une IplImage pour l'afficher avec openCV. Ca ressemble à quoi les structures de sortie d'openGL?

Reply

Marsh Posté le 09-06-2010 à 09:17:14    

l'objet que j'ai dessiné avec opengl c'est un ensemble de point.
je voudrais plaqué cet objet sur une image dans une fenêtre opencv(au lieu d'un rectangle autour de visage je voudrais plaqué une cylindre dessiner en opengl

Reply

Marsh Posté le 09-06-2010 à 10:24:47    

des coordonnées 2D?

Reply

Marsh Posté le 09-06-2010 à 10:33:21    

moi à l'inverse c'est opencv que je ne sais pas ce que c'est.
mais opengl ne dessine que dans les buffers de la carte et c'est à l'OS de fournir un moyen de mapper une zone de mémoire du backbuffer sur une zone cliente dans une fenêtre.
(EGL, WGL, XGL, CGL, AGL, Cocoa...)
on active le contexte opengl sur une fenetre avec une fonction de l'OS comme wglMakeCurrent.
Il faut que la bibliothèque de fenêtre puisse laisser l'accès au handle OS (hwnd..) . ou bien encapsule explicitement des zones OpenGL. (en general elles crééent carrément le contexte dans ce cas)
 
comment as tu créé le contexte ? avec SDL ou wglCreateContext ou autre ?

Message cité 1 fois
Message édité par Lightness1024 le 09-06-2010 à 10:33:58

---------------
http://projets.6mablog.com/
Reply

Marsh Posté le 09-06-2010 à 10:34:13    

non sont en 3d .
ça mon premier problème le deuxième problème c'est que j'ai fais appelle à une fonction
 j

Code :
  1. ALK(pImgT, reacta, pImgI,W);


où recta c'est de type  CvRect.
maintenant au lieu de CvRect je voudrais faire  un autre paramètre qui est l'objet 3d déjà dessiné (n'est pas prédéfini en opencv) est ce que je peux faire ça ?
une dérniére question est ce que je peux dessine une cylindre en opencv? et je peux le plaqué sur l'image sans passer par l'étap d'opengl? à mon avis non

Reply

Marsh Posté le 09-06-2010 à 10:36:48    

en general on fait plutot:
 
- rendu 2D dans un image
- utilisation de l'image dans une texture 2D plaqué sur un quad openGL vu "à plat"
- incrustation de la 3D
 
Et tout est en openGL, openCV ne te file que la texture de la video.

Reply

Marsh Posté le 09-06-2010 à 10:40:29    

Lightness1024 a écrit :


comment as tu créé le contexte ? avec SDL ou wglCreateContext ou autre ?


j'ai utilisé l'opengl que pour déssiné mon cylindre . alors je ne sis pas qu'est ce que j'ai utilisé  je sais que j'ai utilisé la bibliothéque glut
et j'ai fais cette fonction pour créer la fenêtre

Code :
  1. g_hWindow = glutCreateWindow("Video Texture" );

 
alors par ce que vous avez des idées sur opengl  :D  
est ce que je peux charger un vidéo avec opengl et le visualiser (faire des calcules et des modification sur ces images avec opengl?
 

Reply

Marsh Posté le 09-06-2010 à 10:45:11    

Joel F a écrit :

en general on fait plutot:
 
- rendu 2D dans un image
- utilisation de l'image dans une texture 2D plaqué sur un quad openGL vu "à plat"
- incrustation de la 3D
 
Et tout est en openGL, openCV ne te file que la texture de la video.


j'ai réussi à faire ça pour une image
mais quand j'ai maintenant un video et il faudra plaqué à chaque fois (dans chaque frame) le cylindre . je ne sais pas est ce que opengl fourni cette opetion ou non

Reply

Marsh Posté le 09-06-2010 à 10:50:08    

tu peux toujours faire des glTexImage a chaque frame oui.
ok tu as utilisé glut, donc glut t'a créé ton contexte ET ta fenetre. tu pourras jamais afficher l'opengl dans une autre fenetre de cette maniere.
il faudra par exemple créer une framebuffer comme destination de rendu, et le rappatrier avec un readpixels.
ou dans l'autre sens comme dit Joel, tu expédies tes textures a opengl a chanque frame et glut te fait l'affichage du total.


---------------
http://projets.6mablog.com/
Reply

Marsh Posté le 09-06-2010 à 10:50:08   

Reply

Marsh Posté le 09-06-2010 à 11:05:21    


Citation :

ou dans l'autre sens comme dit Joel, tu expédies tes textures a opengl a chanque frame et glut te fait l'affichage du total.


est ce que ça passe en temps réel ?
par ce que j'ai pas essayé de faire ça


Message édité par dreamvig le 09-06-2010 à 11:06:28
Reply

Marsh Posté le 09-06-2010 à 11:14:18    

ca dépend de la taille des textures. mais il me semble qu'il y a des techniques pour laisser le CPU tranquile pendant que le DMA transfert le truc qui peuvent permettre un bon temps réel avec marge.
essaye déjà avec juste glTexImage je pense que ca passera.


---------------
http://projets.6mablog.com/
Reply

Marsh Posté le 09-06-2010 à 13:30:53    

euh oui ... sinon faut changer de becane :€

Reply

Marsh Posté le 09-06-2010 à 14:56:05    

Joel F a écrit :

euh oui ... sinon faut changer de becane :€


quoi?
 
j'ai pas copris

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed