MATLAB: Radius of curvature of a crater on a surface

radius of curvaturesurface

I need to be able to use MATLAB to measure the radius of curvature of a "dimple" on a surface. I cannot post the images here, but imagine a nice rounded surface with a dimple or crater in it, as if something impacted it and left a forever dent.
I've seen some code on here regarding radius of curvature, but I cannot make it work for what I have. My images are imported as "STL" files, and as of now, I can only plot them using the scatter3 command, meaning I have a surface, but not a smooth one… one with scatter plot dots everywhere. You can easily visualize it, though.
Is there a way to do this? If ML can find the slope change where the surface stops and crater starts, it can give me the points for the "circle" to use, and I'm sure it can measure the depth, but as for the radius of curvature of that hole, I'm at a loss.
Any ideas?

Best Answer

So you'll need to first determine all of the faces that are within the dimple. If the rest of the mesh is convex, you could do this by looking at vertices that are not part of the convex hull and all of the faces that contain these vertices. Once you have this information, calculation of the radius of curvature just becomes algebra.
For calculating the convex hull: