3D Mesh Comparison: Determining Closest "Contact" points

23 views (last 30 days)
My program is manipulating three 3D stl meshes that represent components of a knee joint, and the application I have written aligns them in 3D to their relative positions as they were measured by a motion tracking camera.
My next goal is to determine the contact points where the meshes would 'touch' together. Manually, I am able to do this with Geomagic software using the "Mesh Deviation" tool, which creates a color map representation of the vector distance between a reference mesh and a target mesh as projected onto the target mesh. This color map I then use to define a threshold distance that represents where the objects would be touching and also define a centroid of this region and or a minimum distance point which is the 'center' of the contact.
these are the meshes lined up at different points in the experiment:
Here is a view of the mesh deviation type of map:
Is there any matlab package for this type of functionality? I have seen a lot of "Nearest Neighbor" searches and other algorithms but these things are mostly explained in the context of matching multiple scan pieces together from the same object and not two different mesh objects.
I also heard of some other software that implements similar algorithms like Meshlab, but I am curious if such things have been tried in MATLAB with any success.
The Metro error measurement algorithm: http://vcg.isti.cnr.it/publications/papers/metro.pdf
Thank you,
-MTL-
  1 Comment
Rik
Rik on 26 Sep 2016
You might be able to use something like distanceVertex2Mesh and then converting the output to colormap values. Although I suspect you will have solved your problem by now.

Sign in to comment.

Answers (0)

Categories

Find more on Biomechanics 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!