MATLAB Answers

How to calculate the curvature of a boundaries in binary images?

85 views (last 30 days)
Dear all,
I have a binary image that contains one shape as I show below:
I want to represent the curvature using color coding of the boundariessimilar to image I got from the video in this link http://en.wikipedia.org/wiki/Curvature
Does anyone knows how to do that?
Any help or suggestion will be appreciated.
Meshoo

Accepted Answer

Image Analyst
Image Analyst on 27 Nov 2014
Use bwboundaries to get a list of the (x,y) boundary coordinates. Run around that border taking a section of the curve, say 9 elements, and fit a polynomial to it. Knowing the derivative of the curve model you used, and the coefficients polyfit() gave you, you can get the curvature at each point. Then run around the list of (x,y) edge coordinates using a marker color that corresponds to the curvature. Try to program that up. If you can't do it all , then post what you have and I'll try to help with the rest.
  17 Comments
Image Analyst
Image Analyst on 23 Jun 2018
A large radius of curvature means a "flat" part of the curve while a small radius of curvature means "pointy" parts of the curve.
Whether it's positive or negative just says which side of the curve it's bending to. You might want to just take the absolute value of the curvature if you don't care which side it bends toward.

Sign in to comment.

More Answers (3)

Preetham Manjunatha
Preetham Manjunatha on 2 Aug 2021
Edited: Preetham Manjunatha on 4 Aug 2021
Here this function measures the curvature and other shape properties. In addition, it displays the curvature.
Here is the T-section with sharp corners:

linda cummings cummingslinda14@gmail.com
Very nice. Have you worked in gray image the this code ? Have you tried?
Linda Cummings
cummingslinda14 at gmail.com

sana3 sal
sana3 sal on 18 Jun 2018
Hello Mr @Image Analyst, I am wondering how to read the curvature? or how to analyse it?
  3 Comments
cyril grandjean
cyril grandjean on 10 Apr 2020
Hello I read the code well but I was not sure that I understood correctly. So the coefficient provided in this code corresponds to the overall curvature of my form or a trend is that right?
thank you in advance

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