Rotation Around a Specified Axis

I am trying to rotate an MRI image around the z-axis by 90 degrees. I can specify the center of rotation using an Euler3DTransform, however I cannot specify the direction of rotation (the image is diagonally rotated). How can I achieve this? Thank you.

Hello Dr. Jessop,

Welcome to the ITK community!

One option is to call SetRotation on the transform.

If you do not wish to resample the image, call SetDirection on the Image or use the ChangeImageInformationImageFilter.

Matt

Hello, to be more specific, my image is rotated as so, and when I specify my SetRotation, I want the axes to be normal to all planes of the image. I believe the default behaviour of the axes to be like in the drawing I attached. Thank you.
Andrew

Thank you for the drawing. I am not sure, though, what other information is required.

This seems to be a better description of the problem:

Indeed, problem description there was clearer. I posted an answer there with a pointer back to this discussion.

1 Like

Thanks again for your help, I posted a full solution based off of your feedback there.

1 Like

The solution provided on stackoverflow seems to only rotate along the z-axis. If I would want to rotate along both the x, y and z (using euler angles, so the axes are shifting) how would I need to approach this problem?

If “use Euler3DTransform” does not answer your question @MMdeB, please start a new thread and explain what you are trying to accomplish in more detail.

I think it is itk::VersorTransform.