smoothing values on a closed triagulated surface

3 Ansichten (letzte 30 Tage)
Burke Rosen
Burke Rosen am 28 Jul. 2017
Bearbeitet: Burke Rosen am 28 Jul. 2017
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 Kommentare
John D'Errico
John D'Errico am 28 Jul. 2017
Bearbeitet: John D'Errico am 28 Jul. 2017
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.
Burke Rosen
Burke Rosen am 28 Jul. 2017
You understand correctly. I also have the Delaunay triangulation which describes the surface made by the nodes.

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Burke Rosen
Burke Rosen am 28 Jul. 2017
Bearbeitet: Burke Rosen am 28 Jul. 2017
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

Weitere Antworten (0)

Kategorien

Mehr zu Delaunay Triangulation finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by