Evaluate the smoothness of curve

21 views (last 30 days)
I have a binary immage, like in the figure, with different curves which I've skeletonized and from which I have the coordinates xy.
I was wondering if there is a way to evaluete how intese the curvature is: more like a circle, an hyperbola, a corner. For exemple by defining a parameter which is bigger (or smaller) regarding the curvature.
Thank you

Accepted Answer

darova
darova on 7 Sep 2019
I used find() function to exract all white pixels. Reduced number of points and interpolated them to get smooth curve (look HERE)
Once i found position (x,y) of pixels i had to sort them: i calculated angle for each pixel and sorted data by angle
12Untitled.png
I used dot product (angle between radius and curve )
And made a system of equations ( - intersection points )
112Untitled - Copy.png
Look also here: Radius of curvature
  7 Comments
darova
darova on 14 Sep 2019
spline() doesn't work? What kind of problems do you have
Sebastian Ursarescu
Sebastian Ursarescu on 16 Sep 2019
All interpac's methos work. The results are pretty similar. Using few points the line is a little bit rude, using too much points too, usinig 1/5 of the initial points seems to work very good. The point is if the curve is too sharp it cuts it a little bit the edge in some cases. Anyway, from the tries I made until now it is not a big deal.

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!