smoothing values on a closed triagulated surface

3 ビュー (過去 30 日間)
Burke Rosen
Burke Rosen 2017 年 7 月 28 日
編集済み: Burke Rosen 2017 年 7 月 28 日
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 件のコメント
John D'Errico
John D'Errico 2017 年 7 月 28 日
編集済み: John D'Errico 2017 年 7 月 28 日
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 2017 年 7 月 28 日
You understand correctly. I also have the Delaunay triangulation which describes the surface made by the nodes.

サインインしてコメントする。

採用された回答

Burke Rosen
Burke Rosen 2017 年 7 月 28 日
編集済み: Burke Rosen 2017 年 7 月 28 日
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

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeDelaunay Triangulation についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by