Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Matlab 3d volume visualization and 3d overlay

The question is pretty much the title.

I have a 3d volume loaded as raw data [256, 256, 256] = size(A). It contains only values of zero's and ones, where the 1's represent the structure and 0's the "air".

I want to visualize the structure in MATLAB and then run an algorithm on it and put an overlay on it, let's say in the color red.

So to be more precise:

  1. How do i visualize the 3d volume. 0's transparent, 1's semitransparent?
  2. Plot a line in the 3d visualization as an overlay?

I already read the MathWorks tutorials and they didn't help. I tried using the set command, but it fails completely saying for every property I try "invalid root property".

like image 762
scigor Avatar asked May 31 '10 08:05

scigor


1 Answers

I'm not sure I understand the second part of the question, but here's how you visualize a 3D volume using isosurfaces (I'm using the fluid-flow example data)

%# 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

To learn more about volume visualization in MATLAB, refer to this excellent video tutorial series posted on Doug's blog

like image 90
Amro Avatar answered Sep 21 '22 12:09

Amro