python - 如何在 python 中使用不同的插值方法对 3D 图像进行插值
问题描述
我对python很陌生。我有一个 NIFTI 格式(.nii.gz)的 3D 大脑图像,我想用不同的方法(最近邻、双线性、样条线等)对其进行插值并比较结果。图像的体素大小为 1*0.45*0.45,我想将其设为 0.45*0.45*0.45。
我知道这是很容易的任务。我所做的,问题是:在 Scipy 中,函数只能获得积分,但在这里我有一个图像。可用于获取图像输入的功能仅适用于 2D 图像。你有什么解决办法吗?
解决方案
干得好:
def rescale(data,affine):
#compute rescaling coef
original_resolution = [abs(affine[0,0]),abs(affine[1,1]),abs(affine[2,2])]
target_resolution = [0.45,0.45,0.45]
rescaling_coef = np.divide([float(i) for i in original_resolution],[float(i) for i in target_resolution])
# X and Y dimension
data = skimage.transform.rescale(data, (rescaling_coef[0],rescaling_coef[1]), order=1, preserve_range=True)
# Z dimension
#flip axes first
data = np.swapaxes(data,0,2)
data = skimage.transform.rescale(data, (rescaling_coef[2],1), order=1, preserve_range=True)
data = np.swapaxes(data,0,2)
return data, rescaling_coef
推荐阅读
- ruby-on-rails - 如何在 collection_select 类型字段上添加必需的 true
- dita - minOccurs maxOccurs 不适用于dita?
- javascript - 将表连接到带有数组字段的 json 中
- docker - 最后使用 docker-compose 命令
- linear-regression - 模型学习了,但无法预测?
- jquery - 使用 ajax 更新 div 的内容后,卡片向上扩展而不是向下扩展
- azure - 我需要将各种选择语句中的数据推送到 Azure SQL 数据库,最好的方法是什么?
- node.js - React Node 应用程序在下载文件时崩溃
- python - 使用 cookiecutter-flask 时出现“地址已在使用”错误
- javascript - 传递一个回调函数并从中创建一个 Observable