I have approximately hundreds of extremity CT (.mhd files) which I want to orient in 3D space such that the images would be located in the middle of the volume and palms are looking to the same direction and save the oriented images as mhd file again without changing the physical volume and shape of the extremities. I checked registration tutorial (SimpleITK: https://github.com/SimpleITK/TUTORIAL/blob/master/05_basic_registration.ipynb) and I am not sure about to use CenteredTransformInitializer (Geometry or moments) . Would you give me hints to orient the CT extremities in the same position?
Thanks in advance
Not sure that I understand the task you want to complete. My best guess is that you want to align all images to a specific template image that has a desired pose (location+orientation)? Maybe register all images to the template and resample them onto the template grid using a rigid transformation.
Potentially related to this task?
Please provide more details (images of what you want to do would also help).
Thanks a lot for the prompt reply. Yes, I want to align many different hands/arms CT in the middle of the CT volume as vertical position and palms are looking at the same direction. I selected a correct oriented hand CT as template CT. When I followed the tutorial (http://insightsoftwareconsortium.github.io/SimpleITK-Notebooks/Python_html/60_Registration_Introduction.html) I obtained the following images
and when I used the link you provided I obtained the following image
How can I fix the moving image’s orientation as template image?
I think I get what you want to do, resample all of the CTs onto the template grid so that the result has the same pose as the template. In this case the link I pointed you to is not relevant and we are dealing with a standard registration.
I am not sure what you wanted to illustrate with the images you posted, likely that registration didn’t work?
If your images are oriented very differently from your template, e.g. 180 degree rotation, then it is unlikely that registration will succeed using the straightforward initialization. In such a situation you need to rely on a robust initialization. The issue of initialization is discussed in this notebook and an application using a multi-start approach is discussed in this notebook. Hopefully one of these will register your images correctly (remember to use the template as the fixed image).