MATLAB Answers

smoothing 2D scattered points

24 views (last 30 days)
Hi Friends,
Is there anyway to smooth 2D scattered points?
I drew my question in this picture:
on the left we have an scattered path of points, but, rationally one can think of a smoothed representing set of points (black dots) in the right picture.
Thank you very much.

Accepted Answer

Image Analyst
Image Analyst on 9 Feb 2021
Yes. You can use something like spline or sgolayfilt() to smooth both the x and y coordinates independently. See attached demo. Here is the main part:
% Now smooth with a Savitzky-Golay sliding polynomial filter
windowWidth = 45
polynomialOrder = 2
smoothX = sgolayfilt(x, polynomialOrder, windowWidth);
smoothY = sgolayfilt(y, polynomialOrder, windowWidth);
Attach your x and y data if you can't figure it out from the well commented demo code.
Alireza Ahani
Alireza Ahani on 9 Feb 2021
oh, I saw the "bwskel" you mention, that is so much interesting,
Highly likely it is the solution for this problem.
Thank you very much @Image Analyst . God bless.

Sign in to comment.

More Answers (1)

KSSV on 9 Feb 2021
Read about polyfit.
  1 Comment
Alireza Ahani
Alireza Ahani on 9 Feb 2021
an injective function can not be fitted into this type of data (X1--->Y1 && X1--->Y2).
smoothing seems to be the only remedy.

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!

Translated by