Thread Subject: how to smooth a triangulated surface?

Subject: how to smooth a triangulated surface?

From: Pinpress

Date: 21 Apr, 2009 01:20:03

Message: 1 of 5

Hi all,

Suppose I have a triangulated surface (e.g., created by using isosurface), how can I efficiently smooth the surface? Thanks for any good input!

Subject: how to smooth a triangulated surface?

From: Michael Garrity

Date: 21 Apr, 2009 12:47:39

Message: 2 of 5


"Pinpress" <nospam__@yahoo.com> wrote in message news:gsj703$rf1$1@fred.mathworks.com...
> Hi all,
>
> Suppose I have a triangulated surface (e.g., created by using isosurface), how can I
> efficiently smooth the surface? Thanks for any good input!
>
Just a suggestion. If it really is an isosurface, you'll probably
have better results smoothing the volume data before doing
the isosurface. It tends to be simpler and more robust than
messing with the surface data.


    -Mike Garrity
    -The MathWorks


Subject: how to smooth a triangulated surface?

From: Pinpress

Date: 21 Apr, 2009 13:46:01

Message: 3 of 5

Thanks Mike.

Yes, the isosurface was already based on a smoothed volume (using smooth3). However, I would still like to further smooth the resulting triangular surface. Just imaging that I created a phantom 3D image volume of a sphere using the following code:

stack = zeros(100,100,100);
[x,y,z] = meshgrid(1:size(stack,2), 1:size(stack,1), 1:size(stack,3));
dis = dismap_pointsets_openmp([x(:) y(:) z(:)], size(stack)/2); %% just the distance relative to the center
ind = find(dis<40);
stack(ind) = 1;

When I create isosurface, I will get a somewhat jagged sphere. Because the "real", or "idealized" surface is a perfect sphere, I was wondering if there is any way to "smooth" the resulting triangulated surface.

Thanks for any further input!


"Michael Garrity" <mgarrity@mathworks.com> wrote in message <gskf9d$eh7$1@fred.mathworks.com>...
>
> "Pinpress" <nospam__@yahoo.com> wrote in message news:gsj703$rf1$1@fred.mathworks.com...
> > Hi all,
> >
> > Suppose I have a triangulated surface (e.g., created by using isosurface), how can I
> > efficiently smooth the surface? Thanks for any good input!
> >
> Just a suggestion. If it really is an isosurface, you'll probably
> have better results smoothing the volume data before doing
> the isosurface. It tends to be simpler and more robust than
> messing with the surface data.
>
>
> -Mike Garrity
> -The MathWorks
>
>

Subject: how to smooth a triangulated surface?

From: John D'Errico

Date: 21 Apr, 2009 14:00:03

Message: 4 of 5

"Pinpress" <nothing@nothing.edu> wrote in message <gskimp$9ot$1@fred.mathworks.com>...
> Thanks Mike.
>
> Yes, the isosurface was already based on a smoothed volume (using smooth3). However, I would still like to further smooth the resulting triangular surface. Just imaging that I created a phantom 3D image volume of a sphere using the following code:
>
> stack = zeros(100,100,100);
> [x,y,z] = meshgrid(1:size(stack,2), 1:size(stack,1), 1:size(stack,3));
> dis = dismap_pointsets_openmp([x(:) y(:) z(:)], size(stack)/2); %% just the distance relative to the center
> ind = find(dis<40);
> stack(ind) = 1;
>
> When I create isosurface, I will get a somewhat jagged sphere. Because the "real", or "idealized" surface is a perfect sphere, I was wondering if there is any way to "smooth" the resulting triangulated surface.
>
> Thanks for any further input!

I'll argue that the problem is NOT that you have a
non-smooth iso-surface. The problem is you are
creating the approximately spherical surface in a
poor way.

You are interpolating a boolean expression. There
is no reason this should be smooth. Fix the problem,
not the symptom.

John

Subject: how to smooth a triangulated surface?

From: Pinpress

Date: 21 Apr, 2009 14:12:02

Message: 5 of 5

Hi John,

I agree that if my only problem is to use a triangulated surface to represent a sphere, then I will have much better methods than what I suggested earlier. However, this is just a simple phantom image of a real world problem -- when we have a bunch of medical images of human anatomies, for example, this would be what we would go through to have the structure's outer boundary surface. In real cases, it'll be much harder to parametrize the surface (unlike the sphere case).

I understand that medical images are inherently pixel- or voxel-based, which is discretized and not continuous. Therefore, my original intention was to construct a simple surface and see if I can find a way to smooth the triangulated surface and then apply the method to my real problems.

Thanks.

>
> I'll argue that the problem is NOT that you have a
> non-smooth iso-surface. The problem is you are
> creating the approximately spherical surface in a
> poor way.
>
> You are interpolating a boolean expression. There
> is no reason this should be smooth. Fix the problem,
> not the symptom.
>
> John

Tags for this Thread

Add a New Tag:

Separated by commas
Ex.: root locus, bode

What are tags?

A tag is like a keyword or category label associated with each thread. Tags make it easier for you to find threads of interest.

Anyone can tag a thread. Tags are public and visible to everyone.

rssFeed for this Thread
 

MATLAB Central Terms of Use

NOTICE: Any content you submit to MATLAB Central, including personal information, is not subject to the protections which may be afforded information collected under other sections of The MathWorks, Inc. Web site. You are entirely responsible for all content that you upload, post, e-mail, transmit or otherwise make available via MATLAB Central. The MathWorks does not control the content posted by visitors to MATLAB Central and, does not guarantee the accuracy, integrity, or quality of such content. Under no circumstances will The MathWorks be liable in any way for any content not authored by The MathWorks, or any loss or damage of any kind incurred as a result of the use of any content posted, e-mailed, transmitted or otherwise made available via MATLAB Central. Read the complete Terms prior to use.

Contact us at files@mathworks.com