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

Développement 2D, 3D et Jeux Discussion :

Reconstruction 3D à partir d'un stack d'image 2D


Sujet :

Développement 2D, 3D et Jeux

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2013
    Messages : 20
    Points : 11
    Points
    11
    Par défaut Reconstruction 3D à partir d'un stack d'image 2D
    Bonjour, alors voilà, je débute et je cherche à faire, à partir d'une pile d'images 2D (un stack) une reconstruction 3D et une visualisation 3D de ma pile d'image.

    Cette pile d'image représente un volume acquis à l'aide d'un microscope confocal.

    Si vous avez un bout de code, un tuto ou alors une piste pour moi sa serais cool ! ^^

    Merci pour votre aide !

    Cordialement

  2. #2
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 859
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 859
    Points : 218 580
    Points
    218 580
    Billets dans le blog
    120
    Par défaut
    Bonjour,

    Une matrice 3D ne pourrait-elle pas suffire ?
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2013
    Messages : 20
    Points : 11
    Points
    11
    Par défaut
    Bonjour, si cela pourrais suffire mais je ne sais pas comment la faire et surtout comment l'afficher. Parce que je travaille avec OpenCV et Qt créator mais je n'arrive pas à trouver de tuto sur la question ^^

    Peut-être faudrait-il que j'utilise une autre librairie ?

    Merci

    Cordialement

  4. #4
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 859
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 859
    Points : 218 580
    Points
    218 580
    Billets dans le blog
    120
    Par défaut
    Devez vous afficher toutes les couches en même temps, ou juste une couche ?
    Si ce n'est qu'une on peut imaginer afficher cela comme une image, si c'est toutes, on peut imaginer utiliser OpenGL et une vue éclatée.
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  5. #5
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2013
    Messages : 20
    Points : 11
    Points
    11
    Par défaut
    Ba j'aimerais afficher toute les couches en même temps, comme un volume. En fait je voudrais faire quelque chose qui ressemble à la fonction isosurface de matlab.

  6. #6
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 859
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 859
    Points : 218 580
    Points
    218 580
    Billets dans le blog
    120
    Par défaut
    Peut être voir avec GNUPlot aussi, l'outil est très puissant. Je ne connais pas la fonction isosurface, un exemple ?
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  7. #7
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2013
    Messages : 20
    Points : 11
    Points
    11
    Par défaut
    L'exemple est en pièce jointe, ce n'ai pas super beaux mais en gros cela représente des petite vésicules qui se déplace dans une cellule. En X 1024 pixels, en Y 1024 pixels en en Z il y a 12 images superposer pour former le volume.
    Images attachées Images attachées  

  8. #8
    Membre éclairé

    Homme Profil pro
    Non disponible
    Inscrit en
    Décembre 2012
    Messages
    478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Non disponible

    Informations forums :
    Inscription : Décembre 2012
    Messages : 478
    Points : 877
    Points
    877
    Billets dans le blog
    1
    Par défaut
    Bonjour,
    Les conditions pour former un volume sont des image sous différents angles de ce volume.
    Ici je crains que tu n'ai à reconstruire les objets "manuellement"

    #edit Autant pour moi, j'avais mal compris, je pensait que l'anim était le stack...

  9. #9
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2013
    Messages : 20
    Points : 11
    Points
    11
    Par défaut
    Bonjour, comment ca manuellement ?

    Je pense que cela doit être faisable vu que sous matlab ca ce fait très bien, on a juste à ranger nos image dans une matrice 3D, puis de seuiller chacune des images pour que la fonction isosurface crée le volume.

  10. #10
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 302
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 302
    Points : 53 166
    Points
    53 166
    Par défaut
    La fonction isosurface de MATLAB fait en fait appel à un fichier MEX dont le code source isosurf.c est disponible dans le sous-dossier "toolbox\matlab\specgraph\private\src" du dossier d'installation de MATLAB.
    Tu peux donc l'analyser sans problème.

    Sinon, d'un point de vue algorithmique, tu peux aussi t'intéresser à la méthode des "marching cubes". Faire une recherche dans ce forum ou dans le forum Algorithmes
    Ingénieur indépendant en mécatronique - Conseil, conception et formation
    • Conception mécanique (Autodesk Fusion 360)
    • Impression 3D (Ultimaker)
    • Développement informatique (Python, MATLAB, C)
    • Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)

    « J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)

  11. #11
    Inactif  


    Homme Profil pro
    Inscrit en
    Novembre 2008
    Messages
    5 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2008
    Messages : 5 288
    Points : 15 620
    Points
    15 620
    Par défaut
    Bonjour Mctry

    Alors, pour commencer, la création d'image 3D à partir de vues 2D de microscopie confocale est très différente de ce que l'on fait habituellement avec OpenCV. Dans le premier cas, on fait varier la focale du microscope pour obtenir plusieurs plans de coupe (pseudo-coupe : les éléments dans le plan focal sont nets, ceux en dehors sont flous). Dans le second cas, on utilise deux vues prises sous un angle différent pour reconstruire la scène 3D.
    Donc, les techniques de nuages de points ne servent à rien ici, oublie OpenCV et PCL je pense.

    Le plus simple serait d'utiliser le logiciel vendu par le fabriquant du microscope, non ?

    Sinon, la technique s'appelle une déconvolution, il existe plusieurs algos. Mais il n'y aura rien de simple. Recherche "deconvolution reconstruction 3D confocal microscopy" sur google, tu auras pas mal d'articles

    EDIT : par contre, je serais très étonné qu'il n'y ait pas de libs dédiées à cette problématique dans les langages d'analyse mathématique type matlab ou R. Fais une recherche dedans également (et dans bioconductor pour R aussi)

    EDIT2 : regarde aussi du côté de VTK : http://www.vtk.org

  12. #12
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2013
    Messages : 20
    Points : 11
    Points
    11
    Par défaut
    Ba en fait le logiciel qui est fourni par le constructeur n'es vraiment pas top ^^

    C'est pour cela (et pour la curiosité aussi) que j'aimerais bien le faire en C. Je pense qu’il doit bien exister une librairie qui permet de faire une chose semblable à ce que la fonction isosurface de matlab donne comme résultats. Parceque c’est exactement ça que je cherche à faire.

    A oui VTK m'a plutôt l’aire très bien, en plus visiblement ça s'intègre bien à Qt créator ! Je vais regarder ca de plus près Merci beaucoup ! ^^

  13. #13
    Candidat au Club
    Inscrit en
    Octobre 2010
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    pourras tu m'envoyer le code matlab

  14. #14
    Expert éminent sénior
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 361
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 361
    Points : 20 381
    Points
    20 381
    Par défaut
    salut une méthode serait :
    1-tu écris que c'est apparemment une sorte de plasma avec des vésicules donc je suppose que sur une image 2d ou des acquistions tu obtiens un plan avec des sphères représentant des cellules est-ce que c'est ça ?
    2 si c'est le cas et que les plans en 2d affichent des sphères alors on peut procéder à chaque image à une détection de contour et obtenir une sphère pour chaque cellule représentée sur le plan 2d.C'est ça le plus difficile et effectivement pour détecter les points représentant l'enveloppe d'une cellule il faut donner des valeur seuil.
    3 une fois qu'on obtient le contour bref un ensemble de points il faut procéder à des triangulations entre les points d'un plan à un autre ce qui va permettre de construire des polygones.
    Parce que la 3d c"est essentiellement une construction de polygones plutôt un assemblage de triangles en 3d ce qu'on appelle une liste de triangles.
    A ma connaissance Direct3D et certainement Open GL ne fonctionnent que comme ça.
    Ensuite une fois que les triangulations sont construites le plus gros est fait il reste à ajouter une caméra et une zone de représentation de la scène.

    Sinon comme le mentionne Dut il ya différentes techniques possibles notamment les Marching Cubes certainement plus adaptée..

  15. #15
    Expert éminent

    Profil pro
    Fabricant et casseur d'avions
    Inscrit en
    Avril 2004
    Messages
    3 813
    Détails du profil
    Informations personnelles :
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Fabricant et casseur d'avions
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2004
    Messages : 3 813
    Points : 7 638
    Points
    7 638
    Par défaut
    Depuis deux ans et demi, j'espère qu'il a résolu son problème...
    "Errare humanum est, sed perseverare diabolicum"

    Ma page sur DVP.com

  16. #16
    Expert éminent sénior
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 361
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 361
    Points : 20 381
    Points
    20 381
    Par défaut
    bonjour Plegat ouh la boulette c'est exact.
    ceci dit le sujet est intéressant on aimerait bien savoir comment l'auteur de ce fil de discussion s'y est pris

Discussions similaires

  1. Reconstruction 3D à partir d'images 2D
    Par Fgeorges dans le forum OpenCV
    Réponses: 0
    Dernier message: 02/02/2012, 09h22
  2. [Image] Reconstruction 3D à partir de photos 2D
    Par Ivory69 dans le forum Traitement d'images
    Réponses: 29
    Dernier message: 14/10/2009, 16h29
  3. Reconstruction homoplate 3D à partir d'une séquence d'images DCM (IRM)
    Par hakimlimem dans le forum Traitement d'images
    Réponses: 10
    Dernier message: 16/03/2009, 13h36
  4. Reconstruction 3D à partir de 2 images stéréos
    Par wombatz dans le forum Traitement d'images
    Réponses: 17
    Dernier message: 18/12/2008, 13h23

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