measure smoothness of curve

How does one measure the smoothness of a curve?

I have a curve defined by (x,y) points on a Cartesian grid.
I have applied a couple different algorithms to smooth the curve.
(code written in Java fwiw)
Now I want to measure the smoothness of the curves.
Who is Participating?
mandeliaConnect With a Mentor Commented:
A curve is said to be smooth if it has a lesser degree of differential.

ie smoothest curve is a straight line : x = my + c
it is more smooth than a curve where dx/dy = c
which is more smooth than d2x/dy2 = c
How do you define "smoothness"?
One definition is that there be no discontinuities, but that definition will not apply to your curve of discrete points
The 14th Annual Expert Award Winners

The results are in! Meet the top members of our 2017 Expert Awards. Congratulations to all who qualified!

aburrConnect With a Mentor Commented:
Presumably you have used your smoothing algorithm to produce a continuous curve. One way to check smoothness would be to create a matrix with x values being the original x values and Y values of the smoothed curve at the x value. Now sum the differences between each adjacent pair of Y values. In some sense the smoothest curve will have the smallest sum.
Of course is you could take an average of all your y values and declare your smoothed curve to be Y(x) = average. You would have a very smooth curve, which in addition has zero slope.
I doubt very much that that is what you are looking for. Hence the importance of answering my first post.
If you have algorithms to smooth the curve, you might take the closeness between the original curve and the smoothed curve as a measure of smoothness.
allelopathAuthor Commented:
How about this?
For each point (xi,yi), calculate the tangent line and get the slope of that line.
If the difference between the greatest and least slopes is > some value, then its not very smooth.
This involves derivates, and it may be saying what mandelia is saying in a different way.
ozoConnect With a Mentor Commented:
would you condider
to be just as smooth as or the same curve as
have the same smoothness as
“For each point (xi,yi), calculate the tangent line and get the slope of that line”

If you have a collection of discrete points, a unique tangent line to a single point does NOT exist. You can calculate a tangent line IF you use the points on either side of the point of interest.
Again define what you mean by smoothness.
You must tell us what you are looking for because your points can be represented by a streight line and it is hard to imagine anything smoother.
Discrete Points are not lines.  So there is no concept of smoothness there. Lines/curves are represented by exations.

There are infinite number of ways i can draw lines connecting your points. And of varying smoothness
Well there is another way to measure smoothness.
Touch the curves feel them and you will know the smoothest of them all.
> Discrete Points are not lines.
Yes, but the question stated
> I have a curve defined by (x,y) points
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.