0

我有一个关于为生物医学图像创建 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)

提前致谢

4

0 回答 0