smoothing values on a closed triagulated surface

My data consist of a closed triangulated surface with a value at each vertex. How do I smooth these values (not the mesh itself)?
It is notable that matlab does this implicitly when plotting patch objects with P.FaceColor = 'interp'.

2 Comments

Um, I don't think so. 'interp' will use interpolated coloring, which will do no smoothing. Smoothing is a technique where you replace existing values with ones that are close, but that yield a smoother resulting surface. Interpolation does not change the data at the nodes.
To do actual smoothing, where the nodal values are allowed to change (though not move in space) will take some thought.
If I understand you correctly. you have a triangulated surface in R^3, thus (x,y,z), and at each node you have a value w, where w is presumed to have some additive component of noise. Your goal is to arrive at a smoother set of values w(x,y,z), where only w has been smoothed but the triangulation is left untouched? An example of what I am describing is a triangulation, perhaps on the surface of a sphere, where each node also has an associated 4th value, w. Only w will be smoothed? So perhaps you have measured temperature at a triangulated set of points on the surface of the earth, and your goal is to smooth the temperatures. That is how I would interpret what you've said, but it is often true that what someone says and what they really want are two things completely at odds with each other.
You understand correctly. I also have the Delaunay triangulation which describes the surface made by the nodes.

Sign in to comment.

 Accepted Answer

I think I have a solution. It works by applying a 2d-Gaussian each point, using a geodesic matrix.
% for a surface with nv vertices and
% geodesic distance matrix geo
sval = zeros(1,nv)
for iv = 1:nv
val = normpdf(geo(iv,:),0,.5);% use larger sigma for more smoothing
val = val./max(val);% scale falloff to 1
sval = sval + val;
end
W = W.*sval;% apply smoothing matrix

More Answers (0)

Categories

Asked:

on 28 Jul 2017

Edited:

on 28 Jul 2017

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!