医学图像预处理

医学图像预处理

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

posted @ 2021-03-13 21:27  NewChan  阅读(507)  评论(0)    收藏  举报