I have a 3D object which is located in an arbitrary position and orientation in the space. My goal is to roughly find the orientation of the object.
To achieve that, I think I need a descriptor of the object to define it. For that descriptor I am thinking maybe a skeleton of the object will work, since my object’s shape is a specific shape with certain twists and corners.
After having the descriptor I need to be able to find the orientation of the descriptor. And for this I am thinking I might be able to use certain relationships of points located on the skeleton, with each other or with the origin of the space.
So my questions are:
Is there a better method to do this? (Finding the orientation of an object)
Is there a method in VTK/ITK to extract the skeleton of an object?
Is there any other descriptor available in VTK/ITK which might be helpful?
ITK contains a number of image PCA tools, that could be used as a descriptor.
Examining the gradient distribution (representing the orientation) of the segmentation may be helpful (ITK has many methods to compute the gradients).
ITK has many registration tools to help find where you are in this orientation space. Depending on the object and the amount of data that you have, you may want to bridge ITK/VTK with one of the many machine learning libraries to improve how the orientation is estimated.
But, it may just be sufficient to just perform a rigid registration with ITK’s registration framework. It depends on the image content and how how fast the registration needs to be.