在python内插时如何保持图像的大小?

时间:2019-06-28 11:40:54

标签: python image-processing interpolation

我已经通过线性方法对nifti图像(mri数据)进行了插值。但是问题是输出中的视场发生了变化(输入为400 * 400但输出为4000 * 3000)我正在寻找一种在插值时保持尺寸的方法。您可能有解决方案吗? 谢谢

t1_ = "name.nii.gz"
img_t1_ = nib.load(t1_)
img_t1_ = np.double(img_t1_.get_fdata())
slice_ = 300
img_t1_ = np.rot90(img_t1_[:,:,slice_,0])
x = np.linspace(0, img_t1_.shape[1],  img_t1_.shape[1])
y = np.linspace(0, img_t1_.shape[0],  img_t1_.shape[0])
X, Y = np.meshgrid(x, y)
Z = img_t1_
x2 = np.linspace(0, img_t1_.shape[1],  9*img_t1_.shape[1])
y2 = np.linspace(0, img_t1_.shape[0],  9*img_t1_.shape[0])
print(x2.shape[0], y2.shape[0])
tmp_z_ = np.zeros((x2.shape[0], y2.shape[0]))
f_linear = interp2d(x, y, Z, kind='linear')
Z2 = f_linear(x2, y2)

1 个答案:

答案 0 :(得分:0)

我假设保持尺寸是指保持宽高比(即输入:400x400->输出:4000x4000)。另外,我不确定您要通过插值实现什么目标。但是,根据使用情况,c("NA","NA","Pay","Check")的{​​{1}}模块中的zoom函数可以完成此工作。如果选择参数scipy,则对应于线性插值。

我不熟悉用于导入图像的软件包。以下示例假定图像数据已加载到二维浮点数组ndimage中。只需适应您的用例即可。

order=1