From: Erik on
The simplest way to describe my problem is using a cylinder. I essentially have cross sections of a cylinder at discrete, regular intervals along the Z axis. The Z axis is defined here as the axis running through the center of the cylinder length wise. Looking at an XY cross section you would see a circle.

The cross sections in my case however have been defined by me using a masking program. All cross sections are the convex hull of a set of points and are not a perfect circle. Additionally, the "cylinder" is tapered such that it is wider at the top than at the bottom.

Occasionally, my current masking program will not define the slice correctly and I end up with a line through part of the circle. In an extreme case, it would look like a half circle due to the line cutting through the cross section.

I want to attempt to fill in the rest of this circle that has been cut off using interpolation. I have already implemented 2D interpolation by defining the points using polar coordinates relative to the center. I then interpolate using "interp1" with input arguments as "interp1(theta, radius, [0:0.5:2*pi], 'cubic')". Variable 'theta' and 'radius' are column vectors and have been replicated on either side such that boundary conditions are met.

While this works decently, it seems that there is information from other slices that would benefit the interpolation here. At the end of my masking program, I have a large matrix in which I store all of the XYZ coordinates defining the boundary of the tapered cylinder. I would like to be able to use the information from other slices to interpolate a single slice. I eventually need to end up with the correct XYZ coordinates where no slice will contain a cut.

Any help with this problem will be much appreciated. I already have looked at interp2 and interp3, but was unable to figure out how to apply them to my situation. If you believe one of these is the answer to this problem, please provide a specific example of input arguments. If you would like additional information, just let me know.

Thanks
From: us on
"Erik " <stevesmith121(a)gmail.com> wrote in message <i250l4$4h8$1(a)fred.mathworks.com>...
> The simplest way to describe my problem is using a cylinder. I essentially have cross sections of a cylinder at discrete, regular intervals along the Z axis. The Z axis is defined here as the axis running through the center of the cylinder length wise. Looking at an XY cross section you would see a circle.
>
> The cross sections in my case however have been defined by me using a masking program. All cross sections are the convex hull of a set of points and are not a perfect circle. Additionally, the "cylinder" is tapered such that it is wider at the top than at the bottom.
>
> Occasionally, my current masking program will not define the slice correctly and I end up with a line through part of the circle. In an extreme case, it would look like a half circle due to the line cutting through the cross section.
>
> I want to attempt to fill in the rest of this circle that has been cut off using interpolation. I have already implemented 2D interpolation by defining the points using polar coordinates relative to the center. I then interpolate using "interp1" with input arguments as "interp1(theta, radius, [0:0.5:2*pi], 'cubic')". Variable 'theta' and 'radius' are column vectors and have been replicated on either side such that boundary conditions are met.
>
> While this works decently, it seems that there is information from other slices that would benefit the interpolation here. At the end of my masking program, I have a large matrix in which I store all of the XYZ coordinates defining the boundary of the tapered cylinder. I would like to be able to use the information from other slices to interpolate a single slice. I eventually need to end up with the correct XYZ coordinates where no slice will contain a cut.
>
> Any help with this problem will be much appreciated. I already have looked at interp2 and interp3, but was unable to figure out how to apply them to my situation. If you believe one of these is the answer to this problem, please provide a specific example of input arguments. If you would like additional information, just let me know.
>
> Thanks

since it's a cylinder
- why interpolate the circles(?)...
- why not interpolate the missing Zs along a given X/Y(?)...

us
From: Erik on
"All cross sections are the convex hull of a set of points and are not a perfect circle."

The cross sections are actually of a breast using ultrasound tomagraphy. The "circles" are not nearly perfect enough for 2D interpolation to be effective. It's better than doing nothing, but using information from other slices I believe would greatly improve the accuracy.
From: us on
"Erik " <stevesmith121(a)gmail.com> wrote in message <i25240$8q4$1(a)fred.mathworks.com>...
> "All cross sections are the convex hull of a set of points and are not a perfect circle."
>
> The cross sections are actually of a breast using ultrasound tomagraphy. The "circles" are not nearly perfect enough for 2D interpolation to be effective. It's better than doing nothing, but using information from other slices I believe would greatly improve the accuracy.

hmm... some CSSMers most certainly will frown upon the fact that you compare a breast with a cylinder...

us
From: Walter Roberson on
us wrote:

> hmm... some CSSMers most certainly will frown upon the fact that you
> compare a breast with a cylinder...

Modeling as just a hemi-sphere is fairly common in serious medical journals.


An interesting article on stress modeling for brasseries:

http://autospeed.com/A_1260/cms/article.html