Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/352.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 重新排列Nifti文件轴_Python_Numpy_Nifti_Nibabel_Nilearn - Fatal编程技术网

Python 重新排列Nifti文件轴

Python 重新排列Nifti文件轴,python,numpy,nifti,nibabel,nilearn,Python,Numpy,Nifti,Nibabel,Nilearn,我有一些三维nifti文件的尺寸(50,100,50)。我想翻转y轴和z轴,使尺寸为(50,50,100)。执行此操作的最佳方式是什么?如何修改与文件关联的仿射 目前,我正在将nifti文件制作成一个numpy数组,并像这样交换轴 array = np.asanyarray(niiobj.dataobj) img_after_resample_swapped_array = np.swapaxes(img_after_reample_array, 1, 2) 我对下一步感到困惑。我知道我可以使

我有一些三维nifti文件的尺寸(50,100,50)。我想翻转y轴和z轴,使尺寸为(50,50,100)。执行此操作的最佳方式是什么?如何修改与文件关联的仿射

目前,我正在将nifti文件制作成一个numpy数组,并像这样交换轴

array = np.asanyarray(niiobj.dataobj)
img_after_resample_swapped_array = np.swapaxes(img_after_reample_array, 1, 2)
我对下一步感到困惑。我知道我可以使用函数
nib.Nifti1Image
将numpy数组制作成nifti对象,但是如何修改仿射以考虑轴的变化


感谢您的帮助。

如果您使用SimpleTk,则有一个可以看到Y轴和Z轴的PermuteAxes函数。它将适当地保留图像的变换

下面是一个如何执行此操作的示例:

import SimpleITK as sitk

img = sitk.ReadImage("tetra.nii.gz")
print (img.GetDirection())

img2 = sitk.PermuteAxes(img, [0,2,1])
print (img2.GetDirection())

sitk.WriteImage(img2, "permuted.nii.gz")
这是3x3方向矩阵输出:

(1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0)
(1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0)
输入图像具有方向的单位矩阵,对于置换矩阵,Y和Z行交换

以下是PermuteAxesImageFilter和PermuteAxes函数的文档:


如果使用SimpleTk,则有一个可以看到Y轴和Z轴的PermuteAxes函数。它将适当地保留图像的变换

下面是一个如何执行此操作的示例:

import SimpleITK as sitk

img = sitk.ReadImage("tetra.nii.gz")
print (img.GetDirection())

img2 = sitk.PermuteAxes(img, [0,2,1])
print (img2.GetDirection())

sitk.WriteImage(img2, "permuted.nii.gz")
这是3x3方向矩阵输出:

(1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0)
(1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0)
输入图像具有方向的单位矩阵,对于置换矩阵,Y和Z行交换

以下是PermuteAxesImageFilter和PermuteAxes函数的文档:


你能分享你的数据集样本吗?@BelalHomaidan很遗憾,你没有这样做的自由。有什么我可以回答的吗?不,谢谢,我只是想看一个样本来测试一下,否则我帮不了什么忙。你能分享一下你的数据集样本吗?@BelalHomaidan不幸的是,我无权这么做。有什么我可以回答的吗?不,谢谢,我只是想看一个样品用它来测试,否则我帮不了什么忙。