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 :

Visualisation 3D


Sujet :

OpenGL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Avril 2006
    Messages
    20
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 20
    Par défaut Visualisation 3D
    Bonsoir,
    je vais resumé un peu mon travail:
    Je part d'un fichier (avec extension bizard !!), j'arrive a remplir une matrice 3D (selon Z represente les different de l'image). Au fait c'est des images medicales (segmentées).
    Pour visualiser en 2D j'ai utiliser matrcice[i][j][K] pour definir une texture et afficher un plan donné. ( ça marche tres bien)
    Maintenant je souhaite visualiser le tout en 3D, le probleme deja c'est que je n'ai ps les dimensions des pixels ( j'ai juste le ratio entre les pixels selon x, y, z : il est de 1.0000)

    Est ce que quelqu'un aurai une idee pour l'ffichage 3D ???
    J'ai une idee c'est que je parcours la matrice 3D, je remplie un tableau avec les pixels de valeurs 255 ( car image segmenté) puis je sais pas comment j'affiche ???? ( mon probleme c'est les coordonnes dans 3D )

  2. #2
    Rédacteur
    Avatar de bafman
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    2 574
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2003
    Messages : 2 574
    Par défaut
    houla, j'ai pas tout compris la...
    en gros tu a une matrice 3D contenant les differentes couches d'une image et tu voudrais les afficher en 3D?
    si c'est ca, tu peut regarder du coté des texture 3D qui sont fait pour ca...
    * Il est infiniment plus simple de faire rapidement un code qui marche que de faire un code rapide qui marche
    * pour faciliter les recherches, n'oubliez pas de voter pour les réponses pertinentes
    Mes articles

  3. #3
    Modérateur
    Avatar de ToTo13
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Janvier 2006
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 793
    Par défaut
    Bonjour,

    pour l'affichage de couches d'images, il est bien de faire des glutSolidCube auxquel tu plaques une couleur. Selon la taille des images cela risque de ramer (gros volume).

    Le mieux est de mettre un marching cube dessus pour accélérer l'affichage, mais tu perdra la notion de couleur.
    Consignes aux jeunes padawans : une image vaut 1000 mots !
    - Dans ton message respecter tu dois : les règles de rédaction et du forum, prévisualiser, relire et corriger TOUTES les FAUTES (frappes, sms, d'aurteaugrafe, mettre les ACCENTS et les BALISES) => ECRIRE clairement et en Français tu DOIS.
    - Le côté obscur je sens dans le MP => Tous tes MPs je détruirai et la réponse tu n'auras si en privé tu veux que je t'enseigne.(Lis donc ceci)
    - ton poste tu dois marquer quand la bonne réponse tu as obtenu.

  4. #4
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Avril 2006
    Messages
    20
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 20
    Par défaut
    Bon merci deja pour ces reponses . Je ne comprend pas trop l'idee des cubes !!

    Pour la visualisation 3D :
    je commence par construir un tableau a une dimension :

    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
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    void remplir_tbleau1D () {
    int i,j,k;
    for(k=0; k<dim_z; k++)
    {
    for(i = 0; i < dim_y; i++)
    {
    for(j = 0; j < dim_x; j++)
    {
    if( matrice_pixel[i][j][k] != 0 )
    { // Matrice_pixel est la matrice qui contient les valeurs pixels
    tableau1D.push_back( element(j,i,k) ); 
    // element c'est une struct : x,y,z 
    }
     
    }
     
    }
    }
     
    }
    
     
    Puis je l'affiche :
     
    void Reshape(int width, int height) 
    { 
    glViewport(0,0,width,height); 
    glMatrixMode(GL_PROJECTION); 
    glLoadIdentity();
    gluPerspective(180,float(width)/float(height),0.1,1000);
    glMatrixMode(GL_MODELVIEW);
    }
    
     
    void Draw() 
    {
    glClear( GL_COLOR_BUFFER_BIT );
    //Efface le framebuffer et le depthbuffer 
    glLoadIdentity(); 
    // La camera est a la position (0,0,0), le point de vue est vers (256,256,123).
    gluLookAt(0,0,0,256,256,123,0,1,0);
     
     
    glColor3f(255,255,255);
    glBegin(GL_POINTS);
    for ( unsigned i = 0 ; i< tableau1D.size() ; i++)
    {
    glVertex3f(tableau1D[i].x, tableau1D[i].y, tableau1D[i].z);
    }
    glEnd();
    glutSwapBuffers(); 
    glutPostRedisplay();
    }
    
    Qu'est ce que represente l'angle de : gluPerspective
    Comment le calculer ?????

    Je ne comprend pas aussi les parametres de : glViewport et a quoi elle sert vraiment ??????

  5. #5
    Membre chevronné
    Avatar de Edouard Kaiser
    Profil pro
    Inscrit en
    Février 2004
    Messages
    521
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2004
    Messages : 521
    Par défaut
    J'ai rajouté les balises de code, pense à les mettre la prochaine fois, merci !

  6. #6
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 2
    Par défaut
    En fait, tout dépend de ce que tu veux faire, si tu souhaites afficher uniquement la surface, c'est à dire les voxels non vides de ton image 3D, tu peux afficher les QUADS extérieurs de voxels et non pas les cubes entier. Le gain en mémoire et en temps est important.

    Mais comme tu as une image 3D, j'imagine que tu aimerais mettre en place un outil qui te permette de te balader dans ton image suivants les 3 plans.
    L'idéal est pour cela est de creer 3 quads, et d'appliquer sur chaque une texture avec le plan de coupe de ton image 3D. Tu peux ensuite utiliser des slideBar pour déplacer chacun de tes plans dans ton image 3D.

Discussions similaires

  1. empecher la visualisation du code source
    Par Teo dans le forum ASP
    Réponses: 7
    Dernier message: 24/10/2003, 14h11
  2. visualisation et zoom d'une image
    Par julie20 dans le forum Composants VCL
    Réponses: 4
    Dernier message: 11/08/2003, 03h28
  3. visualiser du javascript sous jbuilder
    Par antigone dans le forum JBuilder
    Réponses: 5
    Dernier message: 26/06/2003, 18h23
  4. XSL pour visualiser arbre XML sous forme de tableau en HTML
    Par mattmat dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 28/03/2003, 10h55
  5. Visualisation des mise à jour en réseau
    Par fandor7 dans le forum Paradox
    Réponses: 2
    Dernier message: 06/12/2002, 15h54

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