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

C++ Discussion :

construire un voxel


Sujet :

C++

  1. #1
    Membre averti
    Inscrit en
    Janvier 2011
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 22
    Par défaut construire un voxel
    Salut,
    je travaille sur la reconstruction des images 2D( des projections) en 3D, dans un premier lieu de mon travail je doit avoir une images volumique initiale avec des valeurs quelconques.
    ma question est comment déclarer un voxel en c++,(càd construire un voxel et après le remplir, quelque chose comme "float volume[depth][rows][cols] )
    merci

  2. #2
    Membre émérite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2011
    Messages
    618
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 618
    Par défaut
    Salut,

    Je ne comprends pas trop ta question. Un voxel n'est rien d'autre qu'une valeur (float, int, double, ... selon ce que tu manipule), au même titre qu'un pixel d'une image (je considère que tes images sont en niveau de gris, ce qui est généralement le cas pour de la reconstruction 3D).
    Pour moi, tu aurais quelque chose dans le genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    class Volume
    {
      Volume(int width, int height, int depth)
      : m_values(width * height * depth)
      {
      }
     
      private:
        std::vector<float> m_values; // float, int, ... selon le type que tu utilise
    }

  3. #3
    Membre Expert Avatar de DonQuiche
    Inscrit en
    Septembre 2010
    Messages
    2 741
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 2 741
    Par défaut
    Une telle approche serait extrêmement gourmande en mémoire et CPU, on peut mieux faire. En effet, à moins d'avoir besoin de visualiser des plans de coupe, on n'a besoin, pour une ligne donnée, que des données de deux voxels : celui d'entrée et celui de sortie, avec leurs coordonnées. Autrement dit, un tableau bidimensionnel de structures type { int color1, int z1, int color2, int z2 }.

    Problème : certains objets complexes peuvent avoir plusieurs segments par ligne (cas d'une cruche, on peut avoir une ligne passant par le corps, puis ressortant dans le vide et repénétrant plus loin dans l'anse). Soit on garde l'approche précédente en subdivisant les objets complexes en objets simples (la cruche est divisée en deux morceaux), soit on stocke plusieurs structures comme celle donnée plus haut par ligne.

    Enfin, même si l'on voulait des plans de coupe, on peut au moins faire des économies en virant les voxels vides. Par exemple en décrivant une ligne via une structure du type : { int z1, int z2, int[] voxels }, ou via une séquence de telles structures.

    EDIT : J'ai oublié le pb des surfaces planes. Grosso modo on reprend la dernière solution en virant les voxels invisibles.

  4. #4
    Membre émérite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2011
    Messages
    618
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 618
    Par défaut
    Oups, j'avais mal lu, je pensais qu'il travaillait avec des slices du volume .

  5. #5
    Membre averti
    Inscrit en
    Janvier 2011
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 22
    Par défaut
    Citation Envoyé par pyros Voir le message
    Oups, j'avais mal lu, je pensais qu'il travaillait avec des slices du volume .
    quel est l'IDE le plus adopté à la 3D dans c++?
    puisque moi je travaille avec visuel c++ express

  6. #6
    Membre Expert Avatar de DonQuiche
    Inscrit en
    Septembre 2010
    Messages
    2 741
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 2 741
    Par défaut
    Citation Envoyé par Akramou Voir le message
    quel est l'IDE le plus adopté à la 3D dans c++?
    puisque moi je travaille avec visuel c++ express
    Aucun en particulier.
    Par contre un outil comme gdebugger peut être utile pour OpenGL.

Discussions similaires

  1. [MIB] Questions pour construire une mib
    Par fadoua dans le forum Développement
    Réponses: 4
    Dernier message: 11/03/2004, 10h47
  2. Réponses: 3
    Dernier message: 14/02/2004, 10h10
  3. Difficulté à construire une requête
    Par coolcpu dans le forum Langage SQL
    Réponses: 6
    Dernier message: 08/10/2003, 00h43
  4. construire 1 gateway avec 1 carte réseaux sous débian
    Par regular dans le forum Développement
    Réponses: 4
    Dernier message: 28/08/2003, 01h05
  5. Construire chemin sur bouton avec évt Javascript
    Par Ph. B. dans le forum XMLRAD
    Réponses: 4
    Dernier message: 27/05/2003, 10h26

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