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

Images Discussion :

Dicom to 3D volume


Sujet :

Images

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2010
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 48
    Points : 25
    Points
    25
    Par défaut Dicom to 3D volume
    Bonjour,

    je ne trouve vraiment pas d'informations nécessaires pour reconstruire mon volume 3D a partir des mes images .dcm (dicom) et je solicite votre aide. J'ai l'impression que pas mal de personne souhaite faire cela, mais soit le sujet s'estompe avant la resolution, soit les script proposés ne fonctionnent pas : http://www.mathworks.com/matlabcentr...d-volume-image (qui aurait pu etre vraiment bien).

    Mes fichiers dicom (des images) sont séparés en 3 groupes : X, Y et Z. j ai des fichiers slx+0, slx+1, slx+2..., slx-1 slx-2 (il n'y a pas de 0 pour le "moins" ???). De meme avec sly et slz...

    Il n'est donc pas possible de les empiler aussi simplement que ca. Dois je les imbriquer ? si oui de quelle maniere ?

    Merci pour vos eclaircissement

  2. #2
    Modérateur

    Homme Profil pro
    Ingénieur en calculs scientifiques
    Inscrit en
    Août 2007
    Messages
    4 639
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Ingénieur en calculs scientifiques

    Informations forums :
    Inscription : Août 2007
    Messages : 4 639
    Points : 7 614
    Points
    7 614
    Par défaut
    Bonjour,
    Citation Envoyé par ocelote Voir le message
    je ne trouve vraiment pas d'informations nécessaires pour reconstruire mon volume 3D a partir des mes images .dcm (dicom) et je solicite votre aide. J'ai l'impression que pas mal de personne souhaite faire cela, mais soit le sujet s'estompe avant la resolution,
    Le format dicom permet tellement de choses qu'il est difficile de faire une application qui regroupe tous les traitements possibles.

    Citation Envoyé par ocelote Voir le message
    soit les script proposés ne fonctionnent pas : http://www.mathworks.com/matlabcentr...d-volume-image (qui aurait pu etre vraiment bien).
    pourquoi ça ne marche pas? quel résultat as-tu obtenu?

    Citation Envoyé par ocelote Voir le message
    Mes fichiers dicom (des images) sont séparés en 3 groupes : X, Y et Z. j ai des fichiers slx+0, slx+1, slx+2..., slx-1 slx-2 (il n'y a pas de 0 pour le "moins" ???). De meme avec sly et slz...

    Il n'est donc pas possible de les empiler aussi simplement que ca. Dois je les imbriquer ? si oui de quelle maniere ?
    La manière dépend de ce qu'ils contiennent...
    As-tu essayé la fonction dicominfo pour voir quels champs tu pourraient utiliser pour reconstruire ta pile d'images?
    Pour une bonne utilisation des balises code c'est ici!
    Petit guide du voyageur MATLABien : Le forum La faq Les tutoriels Les sources


    La nature est un livre écrit en langage mathématique. Galilée.

  3. #3
    Membre habitué
    Homme Profil pro
    étudiant ingénieur traitement images médicales
    Inscrit en
    Juin 2012
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : étudiant ingénieur traitement images médicales
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2012
    Messages : 74
    Points : 131
    Points
    131
    Par défaut
    de mon côté je travaille aussi bien avec des images Dicom que des volumes (souvent en .nii ou .mnc).

    par contre, je ne fais pas la conversion sur Matlab :

    http://www.mccauslandcenter.sc.edu/m...n/dcm2nii.html

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2010
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 48
    Points : 25
    Points
    25
    Par défaut
    Citation Envoyé par tanguy4724 Voir le message
    de mon côté je travaille aussi bien avec des images Dicom que des volumes (souvent en .nii ou .mnc).

    par contre, je ne fais pas la conversion sur Matlab :

    http://www.mccauslandcenter.sc.edu/m...n/dcm2nii.html
    Pourquoi vous ne faites pas la conversion sur matlab ? je vais regarder ca de plus pres, merci.

    Avec Dicominfo je vois pas mal de chose dont :

    "Width: 561
    Height: 513
    SliceThickness: 0.9600"

    mais ca ne m'aide pas vraiment :/

    Je comprends pas la logique de programmation pour reconstruire un volume a partir des plans des 3 direction de l'espace. Si j'empile des surfaces (plan X) dans un tableau, j'obtiens un tableau 3D contenant la superposition des plans X. Si je fais pareil avec Y et Z je me retrouve avc 3 tableaux 3D mais je souhaite avoir qu'un seul volume, avec toutes les informations de l'espace (chaque tranche d'une meme direction est bien entendu séparé de celle qui la "suit")

    Je viens de faire un schema 3D pour expliquer mon probleme entre la realité (espace entre les plans d'aquisition) et le virtuel (des tableaux).



    En orange, on distingue l'axe X, en vert l'axe Y et en violet le Z. La separation entre les plans represente la separation lors de l'acquisition de l'image.

    On remarque que meme si j'encastre tout ca dans un seul tableau, il y aura encore des trous...

  5. #5
    Modérateur

    Homme Profil pro
    Ingénieur en calculs scientifiques
    Inscrit en
    Août 2007
    Messages
    4 639
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Ingénieur en calculs scientifiques

    Informations forums :
    Inscription : Août 2007
    Messages : 4 639
    Points : 7 614
    Points
    7 614
    Par défaut
    Quel est le lien entre les plan x, y et z?

    Arrives-tu à ouvrir ces images avec d'autres logiciels?
    Pour une bonne utilisation des balises code c'est ici!
    Petit guide du voyageur MATLABien : Le forum La faq Les tutoriels Les sources


    La nature est un livre écrit en langage mathématique. Galilée.

  6. #6
    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 : 52 884
    Points
    52 884
    Par défaut
    Tu peux jeter un œil à la fonction GRIDDATAN

    Pour passer les images de l'espace (ligne,colonne) à l'espace (x,y,z), je te conseille la lecture du paragraphe "C.7.6.2.1 Image Plane Attribute Description" de l'annexe C du volume 3 de la norme DICOM.
    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)

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2010
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 48
    Points : 25
    Points
    25
    Par défaut
    Je vois que vous avez repondu pendant que j'editais mon poste (ajout d'une image pour expliquer le lien entre X, Y et Z comme demandé)

    Par ailleurs je vais m'empresser de lire la norme dicom

    edit : comment lire les tableaux contenu dans dicominfo ? j'ai la ligne en question mais il affiche le type de variable (tableau 3*1) plutot que son contenu :/

    De plus, je ne comprends pas l'utilité de cette position :/

    Je me demande si je ne devrais pas travailler en pixel plutot que travailler avec des images ; ca me permettrait de construire un tableau 3D avec quelques trous a l'interieur comme sur le schema ci dessus...

  8. #8
    Membre habitué
    Homme Profil pro
    étudiant ingénieur traitement images médicales
    Inscrit en
    Juin 2012
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : étudiant ingénieur traitement images médicales
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2012
    Messages : 74
    Points : 131
    Points
    131
    Par défaut
    Citation Envoyé par ocelote Voir le message
    Pourquoi vous ne faites pas la conversion sur matlab ? je vais regarder ca de plus pres, merci.
    A la base, je ne fais pas la conversion directement sur Matlab car je ne travaille pas sur toutes mes images avec Matlab. Mais au final, cette solution me convient tout à fait en terme de rapidité.

  9. #9
    Modérateur

    Homme Profil pro
    Ingénieur en calculs scientifiques
    Inscrit en
    Août 2007
    Messages
    4 639
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Ingénieur en calculs scientifiques

    Informations forums :
    Inscription : Août 2007
    Messages : 4 639
    Points : 7 614
    Points
    7 614
    Par défaut
    Citation Envoyé par ocelote Voir le message

    edit : comment lire les tableaux contenu dans dicominfo ? j'ai la ligne en question mais il affiche le type de variable (tableau 3*1) plutot que son contenu :/
    La sortie de dicominfo ne contient les images, juste les metadata du dicom.

    Citation Envoyé par ocelote Voir le message
    Je me demande si je ne devrais pas travailler en pixel plutot que travailler avec des images ; ca me permettrait de construire un tableau 3D avec quelques trous a l'interieur comme sur le schema ci dessus...
    Quelle différence fais-tu entre pixel et image?

    Tu créer un volume et le remplir en fonction des coordonnées sur chaque plan. Ensuite tu peux interpoler les valeurs dans les trous.

    Ou tu peux juste générer des tableaux contenant les coordonnées des voxels ainsi que les valeurs.

    Simple curiosité : de quel type d'appareil provienne les images?
    Pour une bonne utilisation des balises code c'est ici!
    Petit guide du voyageur MATLABien : Le forum La faq Les tutoriels Les sources


    La nature est un livre écrit en langage mathématique. Galilée.

  10. #10
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2010
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 48
    Points : 25
    Points
    25
    Par défaut
    La sortie de dicominfo ne contient les images, juste les metadata du dicom.
    Oui bien entendu, simplement dans ces metadatas il y a des tableaux et matlab ne lit pas son contenu mais se contente de dire que c'est un tableau (je ne peux donc pas lire les coordonnées).

    Quelle différence fais-tu entre pixel et image?
    L'image est un ensemble de pixels. Je pensais au depart qu'il fallait empiler les images, mais je devrais a mon avis travailler sur une echelle plus petite. Ce que vous dites est tres interessant :

    Tu créer un volume et le remplir en fonction des coordonnées sur chaque plan. Ensuite tu peux interpoler les valeurs dans les trous.

    Ou tu peux juste générer des tableaux contenant les coordonnées des voxels ainsi que les valeurs.
    Comment créer un volume et le remplir ensuite ?

    J'essaye tant bien que mal a créer un tableau [x,y,z] mais a la fin comment je pourrai visualiser mon volume 3D.

    Ces images proviennent d'un cone beam, un scanner 3D.

  11. #11
    Modérateur

    Homme Profil pro
    Ingénieur en calculs scientifiques
    Inscrit en
    Août 2007
    Messages
    4 639
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Ingénieur en calculs scientifiques

    Informations forums :
    Inscription : Août 2007
    Messages : 4 639
    Points : 7 614
    Points
    7 614
    Par défaut
    Citation Envoyé par ocelote Voir le message
    Comment créer un volume et le remplir ensuite ?
    En créant un tableau 3D avec la fonction zeros par exemple.

    Citation Envoyé par ocelote Voir le message
    J'essaye tant bien que mal a créer un tableau [x,y,z] mais a la fin comment je pourrai visualiser mon volume 3D.
    La visu 3D sous matlab, c'est pas ce qui marche le mieux surtout si tu as beaucoup de données, mais tu peux visualiser les coupes avec la fonction slice et éventuellement faire des reconstructions de surface avec la fonction isosurface.

    Citation Envoyé par ocelote Voir le message
    Ces images proviennent d'un cone beam, un scanner 3D.
    J'utilise régulièrement des examens cone beau, mais je n'avais jamais rencontré ce cas de figure.

    Si c'est possible (si les données sont anonymes et/ou non confidentielles) serait-il possible que tu nous fasses parvenir les 2 premières coupes de chaque plan?
    Pour une bonne utilisation des balises code c'est ici!
    Petit guide du voyageur MATLABien : Le forum La faq Les tutoriels Les sources


    La nature est un livre écrit en langage mathématique. Galilée.

  12. #12
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2010
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 48
    Points : 25
    Points
    25
    Par défaut
    La visu 3D sous matlab, c'est pas ce qui marche le mieux surtout si tu as beaucoup de données, mais tu peux visualiser les coupes avec la fonction slice et éventuellement faire des reconstructions de surface avec la fonction isosurface.
    :o je pensais qu'il était plus facile pour moi d'utiliser matlab pour ce genre de cas, mais peut etre devrais-je me tourner du coté du langage C (qui possede une librairie dicom) ?

    Si c'est possible (si les données sont anonymes et/ou non confidentielles) serait-il possible que tu nous fasses parvenir les 2 premières coupes de chaque plan?
    Les données sont plutot confidentielles, mais je peux vous envoyer cela par e-mail a titre privé si cela peut vous permettre d'apprendre quelque chose et eventuellement m'aiguiller davantage.

    Cordialement

  13. #13
    Modérateur

    Homme Profil pro
    Ingénieur en calculs scientifiques
    Inscrit en
    Août 2007
    Messages
    4 639
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Ingénieur en calculs scientifiques

    Informations forums :
    Inscription : Août 2007
    Messages : 4 639
    Points : 7 614
    Points
    7 614
    Par défaut
    Citation Envoyé par ocelote Voir le message
    :o je pensais qu'il était plus facile pour moi d'utiliser matlab pour ce genre de cas, mais peut etre devrais-je me tourner du coté du langage C (qui possede une librairie dicom) ?
    MATLAB est plus adapté pour faire des tests, de toute manière, tu auras les mêmes difficultés en C++ puisqu'il faut que tu programmes la fusion des données dans les 3 plans. Après je parlais surtout de la visualisation, si tu veux faire des vraies visualisations de volume 3D avec par exemple des effets de transparence, matlab pêche un peu de ce coté-là.

    Citation Envoyé par ocelote Voir le message
    Les données sont plutot confidentielles, mais je peux vous envoyer cela par e-mail a titre privé si cela peut vous permettre d'apprendre quelque chose et eventuellement m'aiguiller davantage.
    J'ai regardé les données, et effectivement la résolution n'est pas isotrope :
    plan x : 0.96x0.16x0.16
    plan y : 0.16x0.96x0.16
    plan z : 0.16x0.16x0.96
    Et les bornes ont l'air d'être les mêmes (à vérifier puisque je n'ai pas toutes les coupes) : min : (-44.88,-44.72,-40.88) , max : (44.72,44.88,41.04)

    Donc, il suffit de combiner les informations pour obtenir un volume de résolution 0.16x0.16x0.16 (c'est ce que permet les différents plans : obtenir une résolution isotrope). A priori je dirais que seul 2 séries de données suffisent puisqu'il n'y a qu'une seule direction pour laquelle la résolution est de 0.96.

    Par contre ceux qui ont fait l'acquisition ont peut-être des outils pour traiter/fusionner ce type de données, non? Ca vaudrait le coup de se renseigner avant de se plonger dans le code.

    Le traitement sous matlab serait du type :
    extraire les infos utiles de chaque fichier avec dicominfo. Je ne suis pas un expert des champs dicom, mais a priori avec les champs ImagePositionPatient, SliceThickness et PixelSpacing, tu devrais pouvoir recaler les données les unes par rapport aux autres. Puis selon ces données, remplir un tableau contenant les images. Tu peux t'inspirer du code que tu donnes dans le premier lien même si il n'est pas tout à fait adapté à tes données.

    Commences par essayer avec une série et utilises un visualisateur de slices dispo sur le file exchange :
    ct3 - A Simple Mousewheel-based 3D Image Browser for Medical Images
    par exemple, mais il en existe plein d'autres.
    Pour une bonne utilisation des balises code c'est ici!
    Petit guide du voyageur MATLABien : Le forum La faq Les tutoriels Les sources


    La nature est un livre écrit en langage mathématique. Galilée.

  14. #14
    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 : 52 884
    Points
    52 884
    Par défaut
    Citation Envoyé par magelan Voir le message
    Je ne suis pas un expert des champs dicom, mais a priori avec les champs ImagePositionPatient, SliceThickness et PixelSpacing, tu devrais pouvoir recaler les données les unes par rapport aux autres.
    Il faut juste ces trois champs :
    • Image Position (Patient) (0020,0032)
    • Image Orientation (Patient) (0020,0037)
    • Pixel Spacing (0028,0030)

    Prenez le temps de lire le paragraphe de la norme que j'ai cité précédemment.
    La matrice de passage y est écrite noir sur blanc
    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)

  15. #15
    Modérateur

    Homme Profil pro
    Ingénieur en calculs scientifiques
    Inscrit en
    Août 2007
    Messages
    4 639
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Ingénieur en calculs scientifiques

    Informations forums :
    Inscription : Août 2007
    Messages : 4 639
    Points : 7 614
    Points
    7 614
    Par défaut
    Effectivement c'est plus simple quand c'est écrit noir sur blanc

    Il faudrait vraiment que je trouve le courage de me plonger dans cette doc un jour...
    Pour une bonne utilisation des balises code c'est ici!
    Petit guide du voyageur MATLABien : Le forum La faq Les tutoriels Les sources


    La nature est un livre écrit en langage mathématique. Galilée.

  16. #16
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2010
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 48
    Points : 25
    Points
    25
    Par défaut
    re-bonjour,

    alors cette fois j ai pris le temps de lire tout ca. Il est ecrit :
    The mapping of pixel location [pic] to the RCS is calculated as follows:

    [pic] = M [pic]
    http://www.dabsoft.ch/dicom/3/C.7.6.2.1/

    Sauf que la matrice M, je ne comprends pas d'ou elle sort.


    Par ailleurs, grace a imagePositionPatient (ici les X)
    0 (+/- 0.9600)
    -44.8800
    41.0400

    j'ai reussi a remettre dans l'ordre les images a savoir : SLX-3, SLX-2, SLX-1, SLX+0, SLX+1 etc.

    A quoi ca sert d'avoir la position dans l'espace (cosinus directeur) ?
    Pourquoi aurais-je besoin de 2 directions puisqu'avec un empilement d'une seul direction je suis sensé avoir le volume ?

    PS : j'ai fait math spé, mais je suis pas aussi doué que ca en maths

  17. #17
    Modérateur

    Homme Profil pro
    Ingénieur en calculs scientifiques
    Inscrit en
    Août 2007
    Messages
    4 639
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Ingénieur en calculs scientifiques

    Informations forums :
    Inscription : Août 2007
    Messages : 4 639
    Points : 7 614
    Points
    7 614
    Par défaut
    C'est la formule qui s'affiche mal, regarde plutôt sur le site donné par Dut.
    Pour une bonne utilisation des balises code c'est ici!
    Petit guide du voyageur MATLABien : Le forum La faq Les tutoriels Les sources


    La nature est un livre écrit en langage mathématique. Galilée.

  18. #18
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2010
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 48
    Points : 25
    Points
    25
    Par défaut
    Au risque de paraitre redondant, je ne comprends pas ce que je dois faire avec cette matrice de passage.

    Clairement, si le fait de créer un objet 3D revient a fabriquer un tableau [x,y,z] alors pourquoi je ne peux pas simplement empiler les images dans le bon ordre avec ImagePositionPatient ?
    Si j'empile les SLZ (ou autre), je suis sensé tout avoir non ? alors que faire de cette matrice de passage qui va me donner les positions de chaque voxel, ce qui fait pas mal de voxels...

    Sinon, grace a cette matrice, je passe toutes mes images X Y et Z pour trouver la position de chaque voxel Px, Py et Pz et ensuite je place ces valeurs dans mon tableau [x,y,z] ??

    ImageOrientationPatient donne le cosinus directeur et me permet donc de savoir l'orientation de mon objet 3D dans l'espace, mais si je peux avoir mon volume, son orientation est secondaire ?

    Apparemment d'autre personne place les images les unes par rapport aux autre en calculant la normale aux images, puis une certaine distance qui permet le classement ordonné (Discussion ici) - alors que image position donne egalement cette information...

    Soit les gens se posent trop de questions, soit je m'en pose pas assez.

  19. #19
    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 : 52 884
    Points
    52 884
    Par défaut
    Ben c'est bien le soucis avec la norme DICOM.

    C'est tellement fourre tout et l'implémentation est tellement aléatoire par les fabricants de machines que tu peux faire une même chose de plusieurs façons. Et aussi te planter misérablement sans t'en rendre compte.

    La plus mauvaise méthode consiste à juste utiliser "Pixel Spacing" et "Space Between Slice", cette dernière n'étant pas une information sûre (ni même obligatoire)

    Sinon dans ton cas, si je comprends bien, tu souhaite créer un volume sous la forme d'un tableau 3D (donc des voxels).

    La méthode que je préconise consiste à passer les données de l'espace (ligne, colonne) vers l'espace (x,y,z). Tu englobes ensuite le nuage de points 3D obtenus par une grille en utilisant MESHGRID et tu interpoles ton volume avec GRIDDATA3 (ou une fonction équivalente).
    Tu n'es pas obligé d'utiliser toutes les coupes de l'examen.

    Tu peux utiliser une autre méthode comme le simple empilement en supposant que la normale aux images passe par le pixel (0,0). Les voxels apparaîtront "automatiquement". Cela donnera peut être de bons résultats dans ton cas. Essaie, ça ne coûte rien
    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)

  20. #20
    Membre régulier Avatar de Décembre
    Inscrit en
    Avril 2010
    Messages
    277
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 277
    Points : 110
    Points
    110
    Par défaut
    Salut,

    je pense que ce lien peut t'être utile:
    http://www.mathworks.com/matlabcentr...-dicom-volumes

    Bon courage

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. création d'un patient en volume dicom
    Par sellamelie dans le forum Images
    Réponses: 1
    Dernier message: 19/07/2011, 10h37
  2. Réponses: 5
    Dernier message: 04/06/2007, 13h49
  3. 50Gb de volume de données ???
    Par hubble dans le forum Décisions SGBD
    Réponses: 3
    Dernier message: 14/04/2004, 17h39
  4. [Volume des tables et performance]
    Par kase74 dans le forum InterBase
    Réponses: 9
    Dernier message: 09/03/2004, 14h14
  5. volume de windows
    Par RCA dans le forum API, COM et SDKs
    Réponses: 4
    Dernier message: 20/03/2003, 17h20

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