gpt4 book ai didi

python - 调整 3D 图像的大小(和重新采样)

转载 作者:太空狗 更新时间:2023-10-29 23:59:31 25 4
gpt4 key购买 nike

我有一个大脑的 3D 图像(我们称它为 flash),它目前是 263 x 256 x 185。我想将它的大小调整为另一个图像的大小(称它为 whole_brain_bravo); 256 x 256 x 176,并且(希望)使用 lanczos 插值来重新采样 (Image.ANTIALIAS)。我的(失败的)尝试:

from scipy import ndimage as nd
import nibabel as nib
import numpy as np



a = nib.load('flash.hdr') # nib is what I use to load the images
b = nib.load('whole_brain_bravo.hdr')

flash = a.get_data() # Access data as array (in this case memmap)
whole = b.get_data()

downed = nd.interpolation.zoom(flash, zoom=b.shape) # This obviously doesn't work

你们有没有在 3D 图像上做过这种事?

最佳答案

来自 scipy.ndimage.interpolate.zoom 的文档字符串:

"""
zoom : float or sequence, optional
The zoom factor along the axes. If a float, `zoom` is the same for each
axis. If a sequence, `zoom` should contain one value for each axis.
"""

两幅图像之间的比例因子是多少?它在所有轴上都是恒定的吗(即你是等轴缩放的)?在这种情况下,zoom 应该是单个浮点值。否则它应该是一系列 float ,每个轴一个。

例如,如果可以假定 wholeflash 的物理尺寸相等,那么您可以这样做:

 dsfactor = [w/float(f) for w,f in zip(whole.shape, flash.shape)]
downed = nd.interpolation.zoom(flash, zoom=dsfactor)

关于python - 调整 3D 图像的大小(和重新采样),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18386302/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com