Does anyone know if it is possible to use the curve fitting tool to measure the radius of curvature of surfaces?
4 views (last 30 days)
Show older comments
Hi,
I am interested in measuring the the principal curvatures of teeth using surface files. I am new to MatLab and have no training but I was wondering if anyone knows if it is possible to import surfaces to MatLab and then use an application to measure radius of curvature from certain points of the surface.
Any help would be greatly appreciated,
Karen
2 Comments
Star Strider
on 1 Jul 2014
Are your data images (CT, MRI) or something else? We may not (at least I don’t) know what a ‘surface file’ is or how it’s formatted.
It also depends on how many data you have and how noisy they are. In my very limited experience, some teeth have many radii-of-curvature on the occlusal surface, so it also depends on those details. What part(s) of teeth are you measuring and modeling?
Answers (3)
Star Strider
on 3 Jul 2014
‘Hello, images are created from CT scans which are then used to produce a surface file (ply., stl. etc.)’
That helps clarify the problem. There are a suite of programmes available, of which STLA Files - ASCII stereolithography files is one, that will import .stl files into MATLAB. (I couldn’t find any for .tri files, there or elsewhere.) Surf the list of files in MATLAB Source Codes there for other options.
I get the impression that you will eventually want to do finite-element analyses on your data, estimating forces, stress, strain, and such. You might also consider Bezier surface construction as well. I would be surprised if someone has not already done something along those lines, but I am not at all familiar with the dental biomechanics literature. (Biomechanics are entirely outside of my areas of expertise, so I will only mention them here and not go further.) Searching the File Exchange, there are 62 submissions on various aspects of finite element modeling that may help in your research.
4 Comments
Star Strider
on 3 Jul 2014
My pleasure!
Most MATLAB programs to fit surfaces (and all that I’m aware of) need quad rather than triangular surface meshes to fit parameters. See the documentation for Delaunay Triangulation for help on this.
John D'Errico
on 3 Jul 2014
If your goal is to compute radii of curvature at some maximum point on the surface, Sean suggests a sphere fit, which is I think in the right direction, but not the right answer.
I'd suggest that you choose a set of points that lie in the immediate vicinity of your chosen location. Then run an ellipsoid fit through them.
An ellipsoid will have three axes of interest here.
However, there is NO assurance at any arbitrary location on the surface, that the surface even has the correct sign on those curvatures for any such fit to be correct. For example, suppose you choose a saddle point? Here we might have a positive curvature in one arbitrary direction, and negative one in the perpendicular direction. And there is no assurance at all that these directions will be aligned with the axes. So really, even an ellipsoid fit is inappropriate in general.
Perhaps a better choice is to fit a general complete quadratic polynomial model at any location to the points in the immediate vicinity. You could then trivially compute a Hessian matrix from that model. (In fact, if you have a gridded surface, you should be able to do it all with three calls to conv2, which would give you estimated hessian matrices over the entire gridded domain. This only works if you have a nice 2-d rectangularly gridded surface though, and I gather you don't have that, but a triangulated surface.)
Anyway, once you have a Hessian matrix, the radius of curvature in any direction is easily computed, regardless of the local shape.
0 Comments
Sean de Wolski
on 1 Jul 2014
I would use sphereFit on the File Exchange to fit the sphere.
Here's a blog post with an example:
2 Comments
John D'Errico
on 3 Jul 2014
Edited: John D'Errico
on 3 Jul 2014
I don't think a sphere fit is right, as the surface likely has differing radius in various directions. An ellipsoid fit seems more correct, but if the curvature may be positive or negative at some locations (the surface of a toooth!) then even an ellipsoid is incorrect.
See Also
Categories
Find more on Delaunay Triangulation in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!