Matlab 如何利用仿射变换计算俯仰、横摇和偏航

Matlab 如何利用仿射变换计算俯仰、横摇和偏航,matlab,Matlab,我试图根据俯仰、横摇和偏航的旋转角度旋转图像R=rotx(θ1)*roty(θ2)*rotz(θ3),旋转矩阵R由旋转内的仿射变换形成,如下所示 R_2d = [R(1,1) R(1,2) 0; R(2,1) R(2,2) 0; 0 0 1]; tform = affine2d(R_2d); outputImage = imwarp(img,tform, 'OutputView', imref2d(size(img))); R旋

我试图根据俯仰、横摇和偏航的旋转角度旋转图像
R=rotx(θ1)*roty(θ2)*rotz(θ3)
,旋转矩阵R由旋转内的仿射变换形成,如下所示

R_2d = [R(1,1)  R(1,2)  0;
        R(2,1)  R(2,2)  0;
         0        0     1];

tform = affine2d(R_2d);
outputImage = imwarp(img,tform, 'OutputView', imref2d(size(img)));
R旋转矩阵可以设置在旋转的仿射变换上,甚至可以强制剥离z轴的值。因此我无法从R_2d(3,1)=0,
R_2d(3,2)=0
,以及
R_2d(3,3)=1
中检索俯仰、横滚和偏航的角度

yaw = rad2deg(atan2(R_2d(2,1),R_2d(1,1)))
pitch = rad2deg(atan2(-R_2d(3,1),sqrt(R_2d(3,2)^2+R_2d(3,3)^2)))
roll = rad2deg(atan2(R_2d(3,2),R_2d(3,3))) 
我不知道如何从R_2d检索到3d

此外,我还尝试使用原始图像和变换后的图像来获得仿射的tform

tformd = fitgeotrans(movingPoints,fixedPoints,'affine')
但tformd的估计与tform不相似。tformd是否包括旋转、缩放、剪切和平移?我该怎么做

多谢各位