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

1 visualizzazione (ultimi 30 giorni)
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 Commento
Matt J
Matt J il 1 Mar 2022
Where is the "central z-axis" in the coordinates of your 3D grid? Which way does it point?

Accedi per commentare.

Risposta accettata

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

Accedi per commentare.

Più risposte (1)

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

Accedi per commentare.

Categorie

Scopri di più su Interactions, Camera Views, and Lighting in Help Center e File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by