用pytorch处理医学图像(以nifity图像为例)----持续更新中

本文介绍了如何使用PyTorch处理医学图像,特别是Nifti格式的图像。文章首先提到了安装nibabel和SimpleITK包,然后分别展示了两种图像读取方法。接着,讨论了图像的基本操作和存储,并探讨了如何输出多个label及自定义损失函数。针对自定义loss的求导问题,提出了三种解决方案:利用Tensor接口、PyTorch的numpy/scipy扩展以及编写C扩展。最后,预告了下一篇文章将深入探讨PyTorch的C扩展实现。
摘要由CSDN通过智能技术生成

      在这之前,要安装一些常用的包:

         pip install nibabel----安装用于读写影像数据文件的程序包

         pip install --trusted-host pypi.python.org SimpleITK-----安装ITK包

 

  • 图像读取

法1:

import SimpleITK as sitk #导入itk
import numpy as np
import torch

.... 

imagenames = [os.path.join(datapath, 'patient%02d_C0.nii.gz' % i) for i in indcs] #图像路径

....     
   
itkimage = sitk.ReadImage(imagenames[subjectid]) #读取数据
numpyimage = sitk.GetArrayFromImage(itkimage) #转为numpy
tensorimage = torch.from_numpy(numpyimage ).type(torch.FloatTensor) #转为tensor

....

法2:

import numpy as np
import nibabel as nib

nibimage = nib.load(imagenames[subjectid])
imagedata = nibimage.get_data() 
header = nibimage.get_header() #读取图像信息,后面save result in NIFITY format要用到
ref_affine = nibimage.get_affine()
numpyimage = np.array(i
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值