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

111 views (last 30 days)
Meshooo on 26 Nov 2014
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

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.
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.

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:

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

sana3 sal on 18 Jun 2018
Hello Mr @Image Analyst, I am wondering how to read the curvature? or how to analyse it?
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?