Full Preprocessing Tutorial 【kaggle学习】

原文连接https://www.kaggle.com/gzuidhof/full-preprocessing-tutorial/notebook

主要包含以下内容:

  • 图像加载
  • 像素值转换为HU值
  • Resampling(重采样)
  • 3D绘图
  • 肺分割
  • 正则化
  • Zero centering

加载图像
def load_scan(path):
    slices = [dicom.read_file(path + '/' + s) for s in os.listdir(path)]
    slices.sort(key=lambda x: float(x.ImagePositionPatient[2]))
    try:
        slice_thickness = np.abs(slices[0].ImagePositionPatient[2] - slices[1].ImagePositionPatient[2])
    except:
        slice_thickness = np.abs(slices[0].SliceLocation - slices[1].SliceLocation)

    for s in slices:
        s.SliceThickness = slice_thickness

    return slices

其中path为文件路径,将path下的文件名拿到后与path拼接,读取结果直接保存在list中。

ImagePositionPatient表示图像的左上角在空间坐标系中的x,y,z坐标,单位是毫米. 如果在检查中,则指该序列中第一张影像左上角的坐标。
SliceLocation表示实际的相对位置,单位为mm。
SliceThicknes表示层厚,单位为mm。

通过ImagePositionPatient的Z方向上的值推测出Z方向上的像素尺寸,也就是切片的厚度。最后只用一个for循环将所有切片的厚度赋值。

在读取文件时遇到了一个错误:


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值