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

2024-04-20 00:16:43 发布

您现在位置:Python中文网/ 问答频道 /正文

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


Tags: 代码图像宽度高度nii
2条回答

一旦为所有卷定义了所需的深度(设为D),就可以为每个卷实例化一个尺寸为W x H x D的图像(称为volumewhen D>;1)。你知道吗

然后,通过将像素位置映射到原始体积上,并通过插值相邻像素中的值来检索像素的值,可以逐个像素地填充每个这样的体积。你知道吗

例如,新卷中的像素(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)的加权平均值。你知道吗

如果您只需要在数据中添加零以获得相同的深度,下面是一种方法:

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

相关问题 更多 >