I wanted to know if anybody else has noticed problems with MATLAB isosurface command for extracting surfaces from volume data (such as MRI or CT Scan 3d images).
More often than not, isosurface creates degenerate/duplicate faces and free edges that should not exist. I had to write functions to remove degenerate/duplicate faces and to see where free edges were being created.
In addition, surfaces are being extended beyond the actual boundary, even for simple cubic volumes, thus giving a wrong interpretation. It is not possible to correct these defects.
I wonder if anyone else has noticed these discrepancies.
Thanks
Ravi
You should send an example with which you can reproduce this behavior
consistently to Technical Support so they can investigate why this behavior
occurs.
--
Steve Lord
sl...@mathworks.com
comp.soft-sys.matlab (CSSM) FAQ: http://matlabwiki.mathworks.com/MATLAB_FAQ
Thanks for your feedback. I will put together a simple example that demonstrates the issue and send it to tech support. I actually have an idea to generate the exact surface from the volume data. I plan to work on it as I need it for research.
Ravi
"Ravi " <soni...@yahoo.com.thisisjunkremoveit> wrote in message <hfu8ef$2ru$1...@fred.mathworks.com>...
I have developed a fix for MATLAB "isosurface" function.
Please download a GNU GPL program from the following link.
http://www.hermesacademy.com/products
I have included a demo example that illustrates the issues with "isosurface" function.
Comparison of results using my program and "isosurface" function is included.
Please give em your valuable feedback :)
Ravi
"Ravi " <soni...@yahoo.com.thisisjunkremoveit> wrote in message <hfu8ef$2ru$1...@fred.mathworks.com>...
Looks like a good program Ravi I downloaded it and the run 'ran' successfully.
Do you know how I can use it visualize the Zubal voxel data in MATLAB using your software? The zubal phantom voxel data is available at http://noodle.med.yale.edu/phantom/tissman/ArmsDownTiss3-6/vox_tiss8.dat (may need username phantom and password copy)
In MATLAB I can open this with
fid=fopen('vox_tiss8.dat','r');
a=fread(fid);
fclose(fid);
a=reshape(a,[192 96 498]);
How do I visualize this in 3D though, thanks for your help
I am not familiar with the Zubel format but I read the file using fread. The array "a" after reshaping is a 3-D array with integer values ranging from 0 to 125. So it is suitable to be processed by my program.
I ran it through my program and generated surfaces corresponding to id=1 thru 5. It gave me the image of a man, so I guess the program worked !
So to process your file using my program, make the following changes in "run" script.
Set voxels=a
Set voxid=integer values between 0 & 125 that you want to process.
Now the program will plot the surfaces corresponding to those ids.
The file is big so it will take a long time to run.
Lemme know how it works.
Ravi
"omegayen " <omeg...@ameritech.net> wrote in message <hvtffa$17t$1...@fred.mathworks.com>...
Thanks Ravi I also was able to run it from 1 to 5 although this took over an hour on my core 2 quad. Then the figure is typical of MATLAB figures with a large amount of data and was very slow and unresponsive.
I wonder if using your program is the best way to visualize it in MATLAB or if there is some other native way that works as well. anyways thanks for the program.
The program is better than the MATLAB isosurface function, which has quality issues and also does not render exact surfaces (if required). Isosurface also runs into memory problems for large data.
It will take time to run because your file size is large. Also MATLAB figure files have slow graphics.
If you implement the program in C it may be faster.
Ravi
"omegayen " <omeg...@ameritech.net> wrote in message <i007io$4e8$1...@fred.mathworks.com>...