Matlab 3d volume visualization and 3d overlay

15,618

Solution 1

There's an excellent utility called vol3d, by mathworks employee Joe Conti. I think it addresses your visualization needs exactly - give it a try.

Update (11/2012): File that is linked to above no longer exists. There is a new version here though.

Solution 2

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

Share:
15,618

Related videos on Youtube

scigor
Author by

scigor

SOreadytohelp

Updated on April 23, 2022

Comments

  • scigor
    scigor about 2 years

    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".