MATLAB Answers

Creating a 3D image from the 3D data points

63 views (last 30 days)
leila
leila on 4 Sep 2011
I have a dataset of 3D "grayscale" images (medical ultrasound dataset) in the form of cartesian coordinates of each voxel and according grayscale intesity values. I want to convert this data to the 3D image matrix (so that it can be used in matlab programming).
I have seen a similar function but for "plotting" named "pcolor" for "2D" images. I want that the output be a "3D" image "matrix" and I don't want only to visualize tha data, so this function is not useful.
-Do you know whether the matlab image processing toolbox (or file-exchange resources,...) has a function that can perform such conversion?
-If the suitable function does not exist in image processing toolbox, how I can program this conversion using matlab? I think that I must do some sort of interpolation, but I don't know exactly how to do it.
your help and comments are greatly appreciated I am looking forward to receiving responses

Answers (3)

Bjorn Gustavsson
Bjorn Gustavsson on 4 Sep 2011
If you have, or can put, your voxels in a simple plaid grid the matlab function to try first is slice. Then there are a bunch of tools for volume visualization/rendering on the file exchange:
For working with transparency I've had mixed success with matlabs alpha-functions, typically I've tried something like:
alphamap('rampdown');alphamap(0.3 .* alphamap);
  8 Comments
leila
leila on 5 Sep 2011
Dear Bjorn
Yes, I accept, that was vague. I think the griddata3() is a good suggestion. I will try the "griddata3()" function and I will report the result.
Thank you very much.

Sign in to comment.


Walter Roberson
Walter Roberson on 4 Sep 2011
You might be able to use interp3() to convert your data to a grid.
Depending exactly what you want to do with the data, you might find triscatteredinterp to be more useful.
  2 Comments
Bjorn Gustavsson
Bjorn Gustavsson on 5 Sep 2011
If your data points are randomly scattered in 3-D then your best start is to interpolate them to a plaid grid with griddata3. If I recall correctly interp3 expects the input data to be on a plaid grid already.

Sign in to comment.


Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!