2010-05-31 6 views
4

La question est à peu près le titre.Matlab visualisation de volume 3D et superposition 3D

J'ai un volume 3d chargé comme données brutes [256, 256, 256] = size(A). Il contient seulement des valeurs de zéro et de un, où les 1 représentent la structure et 0 est «l'air».

Je veux visualiser la structure dans MATLAB et ensuite exécuter un algorithme dessus et y mettre une superposition, disons dans la couleur rouge.

Donc, pour être plus précis:

  1. Comment puis-je visualiser le volume 3D. 0 transparent, semi-transparent 1?
  2. Tracer une ligne dans la visualisation 3D en superposition?

J'ai déjà lu les tutoriels MathWorks et ils n'ont pas aidé. J'ai essayé d'utiliser la commande set, mais elle échoue complètement en disant pour chaque propriété que j'essaie "propriété racine invalide".

Répondre

1

Il y a un excellent utilitaire appelé vol3d, par l'employé de mathworks Joe Conti. Je pense que cela répond exactement à vos besoins de visualisation - essayez-le.

Mise à jour (11/2012): Le fichier lié à ci-dessus n'existe plus. Cependant, il y a une nouvelle version here.

6

Je ne suis pas sûr que je comprends la deuxième partie de la question, mais voici comment visualiser un volume 3D à l'aide isosurfaces (j'utilise les données par exemple fluid-flow)

%# get a sample data with 0 for empty, 1 for solid 
[~,~,~,v] = flow; 
v = double(v<-3); 

%# visualize the volume 
p = patch(isosurface(v,0));     %# create isosurface patch 
isonormals(v, p)        %# compute and set normals 
set(p, 'FaceColor','r', 'EdgeColor','none') %# set surface props 
daspect([1 1 1])        %# axes aspect ratio 
view(3), axis vis3d tight, box on, grid on %# set axes props 
camproj perspective       %# use perspective projection 
camlight, lighting phong, alpha(.5)   %# enable light, set transparency 

flow_volume

Pour en savoir plus sur la visualisation de volume dans MATLAB, référez-vous à cet excellent video tutorial series posté sur le blog de Doug