Path: news.mathworks.com!not-for-mail
From: "John D'Errico" <woodchips@rochester.rr.com>
Newsgroups: comp.soft-sys.matlab
Subject: Re: how to smooth a triangulated surface?
Date: Tue, 21 Apr 2009 14:00:03 +0000 (UTC)
Organization: John D'Errico (1-3LEW5R)
Lines: 25
Message-ID: <gskjh3$75n$1@fred.mathworks.com>
References: <gsj703$rf1$1@fred.mathworks.com> <gskf9d$eh7$1@fred.mathworks.com> <gskimp$9ot$1@fred.mathworks.com>
Reply-To: "John D'Errico" <woodchips@rochester.rr.com>
NNTP-Posting-Host: webapp-02-blr.mathworks.com
Content-Type: text/plain; charset="ISO-8859-1"
Content-Transfer-Encoding: 8bit
X-Trace: fred.mathworks.com 1240322403 7351 172.30.248.37 (21 Apr 2009 14:00:03 GMT)
X-Complaints-To: news@mathworks.com
NNTP-Posting-Date: Tue, 21 Apr 2009 14:00:03 +0000 (UTC)
X-Newsreader: MATLAB Central Newsreader 869215
Xref: news.mathworks.com comp.soft-sys.matlab:534393


"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