Rotate 3D (512*512*512 double) matrix

1 view (last 30 days)
Hi. I have a 3D matrix in double type (512*512*512 double) and I want to rotate 30 degree anticlockwise around central z-axis. Can anyone please give me an idea how to do this? Many thanks,
  1 Comment
Matt J
Matt J on 1 Mar 2022
Where is the "central z-axis" in the coordinates of your 3D grid? Which way does it point?

Sign in to comment.

Accepted Answer

Walter Roberson
Walter Roberson on 28 Feb 2022
The easiest way is to slice it into panes and rotate each pane and reassemble.
  3 Comments
Walter Roberson
Walter Roberson on 1 Mar 2022
for k=512:-1:1
newimg(k, :, :) = imrotate(squeeze(img(k, :, :), Angle)) ;
end
Yilong Zhang
Yilong Zhang on 1 Mar 2022
Yes! it works. Thank you so much!

Sign in to comment.

More Answers (1)

Matt J
Matt J on 1 Mar 2022
Edited: Matt J on 1 Mar 2022
order=[3,1,2]; %example
A=permute(yourMatrix,order);
A=imrotate(A,30);
A=ipermute(A,order);
  1 Comment
Yilong Zhang
Yilong Zhang on 1 Mar 2022
Thank you for your help,Matt. I have tried the code and it works well!

Sign in to comment.

Categories

Find more on Interactions, Camera Views, and Lighting 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!