# Thread: Matlab 3D Interpolation/Display

1. ## Matlab 3D Interpolation/Display

Hi all,

I have a matrix of a stack of images of a tumor, and I would like to come up with a way to create a rough 3D image of that tumor by taking one ROI in both the X and Y directions and three in the Z direction, for a total of five ROIs that together create a sort of blimp-like thing and interpolate the missing slices to form a simple 3D structure to allow us to have a look at the tumor. I've got the ROIs all worked out, now I'm just working on the actual 3D interpolation and display. Since I'm only using 5 ROIs I'm not expecting it to be totally accurate - really it's just for us to get an idea. I've experimented with the interp functions, as well as attempted to write my own, but thus far I've had no luck and I'm not sure I'm even approaching this from the right perspective. Any ideas are much appreciated. Thanks!

-Caroline

2. Sorry if this is a stupid question but what is a ROI?

It sounds like you have an interesting problem there. What form is your basic data in? a bunch of x y z positions for the tumor?

Regards Elbarto

3. an ROI is a region of interest - basically a circle around the tumor. It can be saved as either the points you select to make the circle or a 'mask' of that area which is a binary matrix of ones inside the selection and zeros outside. So it's these five sets of data that I have that I'm supposed to be creating this image of :/

I'm obviously still stuck :/

4. oh ok, I understand what you mean now. The 'mask' method sounds the most promising to me. I would be interested to see some sample data if you have it available. I can see how it is possible to resolve the binary matrix into a a series of points, but then you also need to determine the connectivity between the points so you can render them with something like patches or tetrahedra. This will be the most complex part as you cant simply compute the convex hull since your tumor could take any shape however I imagine it would be possible to determine the connectivity straight from the binary matrix (ie if two '1's are neighbors then there must be a edge connecting them. I have a few ideas I would like to try if I could get a look at the data - im sure we could come up with something between us. This is a very good example to use matlab for I believe (plenty of matrix manipulation ) and it is definitely achievable.

Regards Elbarto

5. Elbarto-
My latest attempt was to take the masks and superimpose them on each other, then calculate the so-called 'brightness' of a particular point (i,j,k) in the matrix based on it's distance from all 5 masks. If the brightness was higher than some arbitrary constant (I used 0.1 to mild success) the point was set to 1, if not to zero. Then I created a surface containing all of my 1's. This worked marginally well - but not quite what I need, I don't think. I also tried saying if a particular point (i,j,k) had it's x value in one of the X ROIs, Y value in the Y ROI and Z value in the Z ROI then it was set to 1, otherwise 0. This did not work at all.

I can't get to any of the data at the moment due to current hard drive restrictions, but hopefully I'll be able to get to it later and post a set of ROIs. Thanks so much for your help!

-Caroline

#### Search Tags

interpolation or display, matlab 