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

1 visualización (últimos 30 días)
Yilong Zhang
Yilong Zhang el 28 de Feb. de 2022
Comentada: Yilong Zhang el 1 de Mzo. de 2022
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 comentario
Matt J
Matt J el 1 de Mzo. de 2022
Where is the "central z-axis" in the coordinates of your 3D grid? Which way does it point?

Iniciar sesión para comentar.

Respuesta aceptada

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

Iniciar sesión para comentar.

Más respuestas (1)

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

Iniciar sesión para comentar.

Categorías

Más información sobre Interactions, Camera Views, and Lighting en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by