Dental models orientation

I have two dental models (upper and lower model). They are randomly oriented (see image 1). I want to orient dental models like image 2 (Y axis to anterior teeth face a consistent direction, Z axis to occlusal). How can I proceed to do that?

The no-code solution is to load the 3D models into 3D Slicer and use the interactive transform handles to do the rotation (or any other motion you want to achieve a realistic occlusal positioning between both models)

Thanks for your reply. I use the no-code method to orient models one by one. However, I have a large number of models. I want a code solution in C++ to auto orient models to the dental standard orientation.

Hello,

You can try using the ICP algorithm (https://examples.vtk.org/site/Cxx/Filtering/IterativeClosestPointsTransform/) to do a rigid (I suppose you don’t want the models to deform) registration against a reference model. The reference model could be the dental model shown in Fig. 2. ICP registration finds which rigid transform (only translation and rotation; no scaling, no shear) is needed so a model closely matches a reference model.

best,

PC

Hello,

In my experience, using directly the vtk ICP algorithm will only work if the models are almost already aligned. So I was thinking first use trimesh to do the “global registration”. Then vtk’s ICP should work. More detail on the global registration here :

It’s something that I have to do with other objects. I didn’t fully test this method so there might be some problems along the way.