NRRD批量转换成NIFTI


3D slicer, MITK默认会将医学图像保存为格式为NRRD的图像,但是我们还是习惯于操作NIFTI格式的数据,于是就有了NRRD转换成NIFTI的需求。
之前自己有一个比较笨的方法,就是将NRRD图像导入到MITK软件中,然后再另存成NIFTI的数据。如果数据少,还可以接受。但是当数据比较多时,这种方法过于耗时耗力。
为了解决这个问题,网上搜索了一些解决方案,并将两个代码进行了合并,供使用,具体代码如下。代码中baseDir可以修改成指定的目录,files里面*后面的部分,改为自己匹配的文件名。

1 import os 2 fr glob import glob 3 import numpy as np 4 import vtk 5 6 7 def readnrrd(filename): 8 """Read image in nrrd format.""" 9 reader = vtk.vtkNrrdReader() 10 reader.SetFileName(filename) 11 reader.Update() 12 info = reader.GetInformation() 13 return reader.GetOutput(), info 14 15 16 def writenifti(image,filename, info): 17 """Write nifti file.""" 18 writer = vtk.vtkNIFTIImageWriter() 19 writer.SetInputData(image) 20 writer.SetFileName(filename) 21 writer.SetInformation(info) 22 writer.Write() 23 24 25 if __name__ == '__main__': 26 baseDir = os.path.normpath(r'G:/auroranrrd/') 27 files = glob(baseDir+'/*label.nrrd') 28 for file in files: 29 m, info = readnrrd(file) 30 writenifti(m, file.replace('label.nrrd', 'label.nii'), info)



上一篇:ITK 简单使用

下一篇:ITK 计算 EuclideanDistance


Copyright © 2002-2019 k262电脑网 www.k262.cn 皖ICP备2020016292号
温馨提示:部分文章图片数据来源与网络,仅供参考!版权归原作者所有,如有侵权请联系删除!QQ:251442993 热门搜索 网站地图