1. 图像数据重采样到真实世界的数据
由于ct所采集到的图像数据是要和真实世界所对应起来的,比如一个像素所代表的真实世界是多少mm,还有一个切片的厚度是多少mm,这些数据可以通过.GetSpacing()得到
def resampleVolume(vol, outspacing=[1,1,1]):
"""
将体数据重采样的指定的spacing大小\n
paras:
outpacing:指定的spacing,例如[1,1,1]
vol:sitk读取的image信息,这里是体数据\n
return:重采样后的数据
"""
outsize = [0,0,0]
#读取文件的size和spacing信息
inputsize = vol.GetSize()
inputspacing = vol.GetSpacing()
transform = sitk.Transform()
transform.SetIdentity()
#计算改变spacing后的size,用物理尺寸/体素的大小
outsize[0] = int(inputsize[0]*inputspacing[0]/outspacing[0])
outsize[1] = int(inputsize[1]*inputspacing[1]/outspacing[1])
outsize[2] = int(inputsize[2]*inputspacing[2]/outspacing[2])
#设定重采样的一些参数
resampler = sitk.ResampleImageFilter()
resampler.SetTransform(transform)
resampler.SetInterpolator(sitk.sitkLinear)
resampler.SetOutputOrigin(vol.GetOrigin())
resampler.SetOutputSpacing(outspacing)
resampler.SetOutputDirection(vol.GetDirection())
resampler.SetSize(outsize)
newvol = resampler.Execute(vol)
return newvol
原文:https://www.cnblogs.com/newchan/p/14529566.html