How can I smooth a 2D boundary ?

Hello, I have a N*2 matrix of x,y coordinates. I need to smooth the boundary. I tried with interp2 but I didn't get something nice.

 Accepted Answer

Image Analyst
Image Analyst on 25 Oct 2016
Lots of ways. One way is to use splines:
Another way is to use a Savitzky-Golay filter.
I'm attaching demos for each of these methods.

4 Comments

After you have extracted the boundary and applied a smoothing filter on the coordinates, which command can you use to extract information about de boundary (area, perimeter, ...) ?
mask = poly2mask(x, y, rows, columns);
props = regionprops(mask, 'Area', 'Perimeter');
props is a structure or structure array where each structure will have an Area field, and a Perimeter field.

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!