From: Ravi on
Hi,

I just wanted to point out that MATLAB isosurface function has a lot of problems for complex data.

I have created a program that renders exact error-free surfaces from 3-D voxel data, such as from MRI, CT Scan.

The following is the link to the discussion thread

http://www.mathworks.com/matlabcentral/newsreader/view_thread/268226#755017

You can download the program from

http://www.hermesacademy.com/products

Ravi



jsilva(a)ci.uc.pt (Jose Silva) wrote in message <34251025.0107070256.200be8f3(a)posting.google.com>...
> Hello all
> Using the isosurface and isocaps it&#8217;s possible to
> view in 3D the brain (see example below).
> Our purpose is to remove 1/8 of brain to see in 3D the
> brain volume AND the border of brain (as we removed
> part of brain, we expected to see the interior
> on brain).
> We wrote the example below, but when we use
> isosurface, the region (1/8 of brain) removed
> appears covered by isosurface. If we discarded
> isosurface and use only isocaps, we only see top
> and bottom of MRI image and we don&#8217;t see the faces
> inside brain image (as we removed 1/8 of brain,
> this region should be transparent to see 3 new
> faces inside brain).
> Of course we would like to see the brain AND
> also the new walls as a consequence of
> removing 1/8 of brain.
> Any comments on this matter are welcome.
> Thanks.
>
> Jose Silva
>
> % start
> load mri
> D=squeeze(D);
> D(1:64,64:128,14:27)=0;
> Ds = smooth3(D);
> hiso = patch(isosurface(Ds,5), 'FaceColor', ...
> [1,.75,.65],'EdgeColor','none');
> hcap = patch(isocaps(D,5), 'FaceColor','interp',...
> 'EdgeColor','none');
> colormap(gray(256));
> view(45,30)
> axis tight
> daspect([1,1,.4])
> lightangle(45,30);
> set(gcf,'Renderer','zbuffer');
> lighting phong
> isonormals(Ds,hiso)
> set(hcap,'AmbientStrength',.6)
> set(hiso,'SpecularColorReflectance',0,...
> 'SpecularExponent',50);
>
> % end