如何使nii图像的深度相等?

时间:2019-02-28 18:54:51

标签: python image-processing medical

我有一些nii图像,每个图像的高度和宽度相同,但深度不同。所以我需要使每个图像的深度相等,我该怎么做?另外,我没有找到任何可以帮助我的Python代码。

2 个答案:

答案 0 :(得分:0)

为所有体积定义所需的深度后,将其设为D,您可以实例化尺寸为W xH x D的图像(当D> 1时称为 volume )。您拥有的音量。

然后,您可以通过将像素位置映射到原始体积并通过在相邻像素中插值来获取像素值,来逐像素填充每个此类体积。

例如,新体积中的像素(i_x,i_y,i_z)将映射到旧体积的点(i_x,i_y,i_z')。最简单的插值方法之一是线性插值:(i_x,i_y,i_z)的值是(i_x,i_y,floor(i_z'))和(i_x,i_y,floor(i_z')值的加权平均值+1)。

答案 1 :(得分:0)

如果您只需要在数据中添加零以获取相同的深度,则可以采用以下方法:

import numpy as np

width = 2
height = 2
depth1 = 3
depth_max = 5

t = np.zeros(shape=(height, width, depth1))

print(t.shape)  # (2, 2, 3)

t_with_new_depth = np.block([t, np.zeros(shape=(height, width, depth_max - depth1))])

print(t_with_new_depth.shape)  # (2, 2, 5) with 0 on the newly added depth channels