从3D阵列中提取任意旋转的数据平面作为2D阵列

Nic*_*ell 6 3d matlab rotation matrix slice

我在matlab中有一个3D数据矩阵,但是我想从该矩阵中提取一个任意旋转的数据切片并将其存储为我可以访问的2D矩阵.类似于slice()函数如何显示以任何角度切片的数据,除了我还希望能够像查看数组一样查看和修改数据.

我有平面枢轴点的坐标以及旋转角度(在x,y和z轴上),我还计算了以下形式的平面方程:

Ax + By + Cz = D
Run Code Online (Sandbox Code Playgroud)

并且可以提取仅包含落在该平面上的数据的3D矩阵,但我不知道如何将其转换为简单的2D阵列.

另一种方法是以某种方式在与平面角度相反的方向上旋转源矩阵,以便将数据平面与XY轴对齐,并简单地提取矩阵的那部分,但我这样做不知道是否可以旋转这样的矩阵.

我希望在其他地方没有得到解答,我一整天都在谷歌搜索,但似乎没有任何问题与我的完全匹配.

谢谢

ten*_*eng 3

您可以在此处查看代码。我认为该功能与您要解决的问题类似。

该函数从给定平面大小、平面中心点和平面法线(即 [A,B,C])的体积中提取任意平面。它还输出平面上每个像素的体积索引和坐标。