2010-02-01 4 views
1

J'ai 25 images 2D (de taille égale), chaque image représente une couche équidistante. Chaque image est en niveaux de gris et la couleur noire (ou les valeurs égales à 0 dans la matrice de données après l'importation) est l'arrière-plan qui doit être supprimé.Empilement de plusieurs images 2D en 3D dans Matlab

Et mes questions sont:

  • Comment combiner ces 25 images pour une image 3D? Comment dessiner chacun avec un espace entre?

  • Comment supprimer la couleur de fond? Est-il possible de créer une sorte d'échelle de couleurs où les valeurs égales à 0 seront transparentes?

Un peu de données supplémentaires:

  • Ces images sont au format DCM (images DICOM) et je les importer en utilisant dicomread fonction. Chaque image (320 x 320 px) représente une couche de 4 mm d'épaisseur et l'espacement entre les couches est de 1,2 mm. On peut supposer que la largeur de chaque image est d'environ 120-125 mm

Répondre

4

2D en 3D matrice:

>> a = magic(3) 

a = 

    8  1  6 
    3  5  7 
    4  9  2 

>> b = ones(3) 

b = 

    1  1  1 
    1  1  1 
    1  1  1 

>> c = zeros(3) 

c = 

    0  0  0 
    0  0  0 
    0  0  0 

>> d(:,:,1)= a 

d = 

    8  1  6 
    3  5  7 
    4  9  2 

>> d(:,:,2)= b 

d(:,:,1) = 

    8  1  6 
    3  5  7 
    4  9  2 


d(:,:,2) = 

    1  1  1 
    1  1  1 
    1  1  1 

>> d(:,:,3)= c 

d(:,:,1) = 

    8  1  6 
    3  5  7 
    4  9  2 


d(:,:,2) = 

    1  1  1 
    1  1  1 
    1  1  1 


d(:,:,3) = 

    0  0  0 
    0  0  0 
    0  0  0 

Transparence:

Régler les voxels transparents à un valeur de NaN. La plupart des graphiques laissent juste NaN comme espace vide.

projets connexes

Vous êtes susceptible d'être intéressé par SliceOMatic

Mon premier projet chez The MathWorks a été a demo similar to yours. C'était la reconstruction d'un solide 3D à partir de tranches planaires (non enregistrées). La plupart du travail était dans l'enregistrement. Il s'agit d'un related project qui pourrait également vous intéresser.

+0

Merci, pas exactement ce dont j'ai besoin, mais cela m'a beaucoup aidé. SliceOMatic est génial, malheureusement très lent:/ – Gacek

+0

@Gacek Quelle est la taille de votre jeu de données? Je ne m'attendrais pas à ce qu'il soit lent pour la plupart des jeux de données. Si je n'ai pas répondu à votre question, veuillez élaborer celle-ci ou en ouvrir de nouvelles le cas échéant. Une question par poste fonctionne le mieux (il y en avait deux ou plus!) – MatlabDoug

+0

Ce que je voulais dire, ce n'est pas exactement ce à quoi je pensais à la première fois, mais cela semble être une meilleure solution. J'ai 25 images 320x320 pixels ... pas tellement, mais ça tue presque mon Matlab. Je ne sais pas pourquoi: / – Gacek