使用SimpleITK对volume文件进行插值处理

本文目的

在进行dicom文件分析时,往往会对其进行插值或者重采样处理,可以使用SimpleITK轻松完成。

代码如下

import SimpleITK as sitk

def getDicomSeriesVolumeImage(folderPath):
	'''
	读取dicom序列文件
	:para folderPath:dicom文件夹
	:return volumeImage:volume
	'''
    reader = sitk.ImageSeriesReader()
    dicomNames = reader.GetGDCMSeriesFileNames(folderPath)
    reader.SetFileNames(dicomNames)
    volumeImage = reader.Execute()

    return volumeImage

def interpolate(volumeImage, newSpacing):
	'''
	插值处理
	:para volumeImage:volume格式
	:para newSpaceing:想要插值或者重采样处理后得到的物理间隔,格式为列表
	:return newVolumeImage:插值处理后的到的volume文件
	'''
    resampleFilter = sitk.ResampleImageFilter()
    resampleFilter.SetInterpolator(sitk.sitkLinear) 	##此处为线性插值,其他插值方式可以去官网查询
    resampleFilter.SetOutputDirection(volumeImage.GetDirection())
    resampleFilter.SetOutputOrigin(volumeImage.GetOrigin())

    newSpacing = np.array(newSpacing, float)
    newSize = volumeImage.GetSize() / newSpacing * volumeImage.GetSpacing()
    newSize = newSize.astype(np.int)

    resampleFilter.SetSize(newSize.tolist())
    resampleFilter.SetOutputSpacing(newSpacing)
    newVolumeImage = resampleFilter.Execute(volumeImage)

    return newVolumeImage
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值