我有一个关于为生物医学图像创建 nifti 卷的问题
我通常在 python 中使用 nibabel 来加载和创建 3D nifti 卷,但我最近有一组具有不同切片厚度的图像(奇数切片为 300 微米(0.3 毫米/像素),偶数切片为 60 微米(0.06 毫米/像素)在厚度方面)。
我通常使用以下代码将 nifti 转换为创建 3D numpy 数组文件:
vol = np.zeros((864, 1296, 214))
count = 0
numbers = np.arange(1, 215).tolist()
for i in numbers:
file_name = 'central_block_{}.nii'.format(i)
img = nib.load(file_name)
data = img.get_fdata()
#test file size
if img.shape[0] != vol.shape[0] or img.shape[1] != vol.shape[1]:
print(file_name+' size is wrong. Resizing...')
img = xform.resize(img,(vol.shape[0],vol.shape[1]))
vol[:,:,count] = data
count += 1
以及创建 3D numpy 数组后我通常会做什么:
M = [[0.0232,0,0,0], [0,0.0232,0,0], [0,0,0.232,0], [0,0, 0, 0.3]]
nii = nib.Nifti1Image(vol, None)
但在这种情况下,我认为不会保留每个切片中的厚度信息,切片厚度体素大小将全部设置为 0.232。
是否有另一种方法可以在保留单个切片体素大小的同时堆叠 nifti?还是我必须首先更改单个 nifti 厚度才能首先获得统一的体素大小?(例如将 0.3 毫米/像素的 nifti 更改为 0.01 毫米/像素,厚度为 30,0.06 毫米/像素更改为 0.01 毫米/像素,厚度为 6)
提前致谢