有解决方案来调整3d数据的大小而又不会使数据变得混乱吗?

问题描述 投票:0回答:1

我使用此代码来调整3d nifti数据的大小,但是当我检查结果时发现它杂乱无章,并且轴已更改

import numpy as np
import nibabel as nib
import itertools

initial_size_x = 560
initial_size_y = 560
initial_size_z = 240

new_size_x = 512
new_size_y = 512
new_size_z = 216

initial_data = nib.load("id001-512x512x216.nii.gz-pred.nii").get_data()
print('helooooooooooooooooooo')
delta_x = initial_size_x/new_size_x
delta_y = initial_size_y/new_size_y
delta_z = initial_size_z/new_size_z

new_data = np.zeros((new_size_x,new_size_y,new_size_z))

for x, y, z in itertools.product(range(new_size_x),
                                 range(new_size_y),
                                 range(new_size_z)):
    new_data[x][y][z] = initial_data[int(x*delta_x)][int(y*delta_y)][int(z*delta_z)]

img = nib.Nifti1Image(new_data, np.eye(4))
img.to_filename("test_"+str(new_size_x)+""+str(new_size_y)+""+str(new_size_z)+".nii")

enter image description here

python numpy 3d resize nifti
1个回答
0
投票
在这个问题上,我想您希望稍微改变3D数据的分辨率。我提出的解决方案仅适用于将数据放大或缩小整数倍。
© www.soinside.com 2019 - 2024. All rights reserved.