Eng-Tips is the largest engineering community on the Internet

Intelligent Work Forums for Engineering Professionals

  • Congratulations waross on being selected by the Eng-Tips community for having the most helpful posts in the forums last week. Way to Go!

3D Tumor Interpolation & Display

Status
Not open for further replies.

smtihca

Bioengineer
Jun 30, 2010
4
US
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
 
Replies continue below

Recommended for you

OK, let's make sure I understand what you've got, which is presumably something like a slice along the XZ plane, YZ plane, and 3 slices parallel to the XY plane?

And the objective is to synthesize a 3-D surface that "fits" on these 5 slices? Are all these slices correctly registered in space, i.e., there are no extraneous positioning errors?

What kind of fitting errors are you willing to tolerate?

The data you have seems a bit sparse to me for getting any degree of accuracy.

Seems to me that you have two approaches for the data you've selected or collected:
> Use your XZ and YZ slices as surfaces of rotation and adjust based on the XY slices

> Use your XY slices and the end points of the XZ and YZ slices to generate splines that fit the 3 XY slices; that'll probably result in something that looks like a squashed football

TTFN

FAQ731-376
 
Yep, I've got one slice in XZ, one in YZ, and 3 in XY. And yes, I'm more or less attempting to 'fit' a surface to these five slices, which are correctly aligned.

I'm willing to take a fairly substantial hit on the fitting errors - Our data is more or less totally processed and now we're attempting to 'make something pretty' to go with our results. I highly doubt the people viewing this will have a firm grasp of what they're looking at, anyways - long as they keep paying us.

I have been making a fairly unproductive attempt to do that second method with little luck, and I feel like I'd get better results using the first method anyways. So I guess my new question is this: What would be the best way to rotate the two long frames while still more or less representing the shape they outline? And to fit the resulting.... lump to the other three slices.... how?

Sorry for all the questions - Matlab is nice but I'm not particularly experienced with it and I'm more than a little upset that my job now involves attempting to make a picture that will end up on a brochure somewhere. Thanks a bunch

-C
 
Assuming that your images are essentially camera pixel-formatted, then the cheesy solution is to take each generated horizontal plane and fit an ellipsoid to the 4 points that you'd get from the two vertical slices and ignore the horizontal slices.

Alternately, you could take the outer boundaries from each of the 3 horizontal slices and blend and scale them to generate the new boundaries for each horizontal slice. I'm thinking along the lines of something that "Super Goo" used to do, which was to be able to "morph" one person's face into another's.

It might help if you can post your images. I'm imagining things that might not be appropriate for your specific tumor. Are you intending to do this just once or will it be a regular thing?

TTFN

FAQ731-376
 
In CAD terms you are trying to fit a 3d surface to a rather sparse point cloud. I strongly suggest you cut the slices out of card stick them together and get some modelling clay and get a physical feel for what you are trying to do. It'll rapidly become apparent that the bending and tensile properties of the surface strongly affect the result.

You'd probably do a one-off more quickly in a solid modelling program based on blobs, than matlab. Essentially you'd build a wireframe armature, then skin it with flat panels, then deform those panels.

Cheers

Greg Locock


New here? Try reading these, they might help FAQ731-376
 
Have you explored the delaunay triangulation demos/examples? If I remember correctly, there is one where a surface is fitted to a 3D point cloud.

- Steve
 
Hey guys - Thanks a ton for your help - I ended up making a logic mask for each of the five ROIs then calculating the intensity of the surrounding points based on the distance from the ROIs and trimmed off the excess points. It was still a bit block-ish, so I sent it through interp3 to try even it out. Then I set up a patch & isosurface, made it pretty colors, and voila!

Best way to do this? Most certainly not. Good enough? Hope so....

Thanks again!
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top