我正在更改某些3D体积的体素大小。如何编辑pixdim
字段并计算新的affine
?
我有一些各向异性的MR体积,体素大小为0.5 x 0.5 x 3
mm。而且我有一些代码可以将它们插值成各向同性的体积(例如0.5 x 0.5 x 0.5
毫米体素大小)。
问题是当我需要保存文件时,我必须计算仿射来映射ijk空间中现在更密集的体素以引用xyz空间。我该怎么办?
首先,我的想法是使用旧的仿射并计算新的仿射。
例如,如果体积V的形状为具有256 x 256 x 20
体素大小的0.5 x 0.5 x 3
体素并插值到具有256 x 256 x 120
体素大小的体积U 0.5 x 0.5 x 0.5
体素中。
旧的仿射将执行[255 255 19]OA = [X Y Z]
,新的仿射将执行[255 255 119]NA = [X Y Z]
,我们知道AX=B X=inverse(A)B
。
因此新的仿射应为inverse([255 255 119])[X Y Z]
。
但是,逆矩阵仅对于方矩阵存在。 inverse([255 255 119])
不会有这种事情。
似乎在python-nibabel matlab-nifti-toolbox中没有set_voxel_size
函数,等等。情况如何?
如何显式更改体素大小?
答案 0 :(得分:0)
我现在正面临类似的问题。为了解决这个问题,我从头开始创建了一个nifti头,该头具有0.5 mm各向同性体素和所需的形状。您可以使用header.set_zooms()
来设置体素大小(毫米)。
Page::ArchitectureScrapingJob