Radius of curvature of a crater on a surface

5 Ansichten (letzte 30 Tage)
John
John am 26 Nov. 2013
Kommentiert: Sean de Wolski am 3 Dez. 2013
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?
  2 Kommentare
Sean de Wolski
Sean de Wolski am 26 Nov. 2013
First you have to define the surface, i.e. the connectivity of the vertices. Do you have this information from the STL file?
John
John am 26 Nov. 2013
When the STL file is imported, it dumps data into a two-part structure: faces and vertices.

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Sean de Wolski
Sean de Wolski am 26 Nov. 2013
Bearbeitet: Sean de Wolski am 26 Nov. 2013
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:
  19 Kommentare
John
John am 3 Dez. 2013
Back after the Thanksgiving holiday...
Any ideas on why this still isn't working?
Sean de Wolski
Sean de Wolski am 3 Dez. 2013
Hi John,
I don't think duplicate values would describe the error you're seeing. It's really difficult for me to come up with an example without a file. But I do have some time on a plane Thursday and Friday so I could try then. Essentially, the goal would be to create an isosurface of a Death Star, probably by taking two partially overlapping spheres and removing the small sphere from both...

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

Image Analyst
Image Analyst am 26 Nov. 2013
I've never used STL files, but if you can get a topographic image (with pixel value being the height values) then you can threshold, and call regionprops(binaryImage, 'EquivDiameter') to get the equivalent circular diameter (ECD).
  3 Kommentare
John
John am 27 Nov. 2013
I'm having trouble getting this function to work. I keep getting errors.
Image Analyst
Image Analyst am 27 Nov. 2013
I haven't used it, and don't have plans to. I assume you contacted the author.

Melden Sie sich an, um zu kommentieren.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by