我是python的新手。我有NIFTI格式(.nii.gz)的3D脑图像,我想用不同的方法(最近邻,双线性,样条曲线...)进行插值并比较结果。图像的体素大小为1 * 0.45 * 0.45,我想使其为0.45 * 0.45 * 0.45。
我知道这是很容易的任务。我所做的和存在的问题是:在Scipy中,函数仅获得积分,但是在这里有一个图像。以及可用于获取图像输入的功能,仅适用于2D图像。你有解决方案吗?
答案 0 :(得分:0)
您在这里:
def rescale(data,affine):
#compute rescaling coef
original_resolution = [abs(affine[0,0]),abs(affine[1,1]),abs(affine[2,2])]
target_resolution = [0.45,0.45,0.45]
rescaling_coef = np.divide([float(i) for i in original_resolution],[float(i) for i in target_resolution])
# X and Y dimension
data = skimage.transform.rescale(data, (rescaling_coef[0],rescaling_coef[1]), order=1, preserve_range=True)
# Z dimension
#flip axes first
data = np.swapaxes(data,0,2)
data = skimage.transform.rescale(data, (rescaling_coef[2],1), order=1, preserve_range=True)
data = np.swapaxes(data,0,2)
return data, rescaling_coef