医学影像中用python 将NRRD批量转换成NIFTI

用python 将NRRD批量转换成NIFTI

3D slicer, MITK默认会将医学图像保存为格式为NRRD的图像,但是我们还是习惯于操作NIFTI格式的数据,于是就有了NRRD转换成NIFTI的需求。

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

import os
from glob import glob
import numpy as np
import vtk

def readnrrd(filename):
    """Read image in nrrd format."""
    reader = vtk.vtkNrrdReader()
    reader.SetFileName(filename)
    reader.Update()
    info = reader.GetInformation()
    return reader.GetOutput(), info

def writenifti(image,filename, info):
    """Write nifti file."""
    writer = vtk.vtkNIFTIImageWriter()
    writer.SetInputData(image)
    writer.SetFileName(filename)
    writer.SetInformation(info)
    writer.Write()


baseDir = os.path.normpath(r'G:/aurora-nrrd/')
files = glob(baseDir+'/*label.nrrd')

for file in files:
    m, info = readnrrd(file)
    writenifti(m,  file.replace('label.nrrd', 'label.nii'), info)

参考连接:
【nrrd文件格式转NIFTI】
https://blog.csdn.net/juluwangriyue/article/details/120719738

【NRRD批量转换成NIFTI】
链接:https://www.jianshu.com/p/6d2c83569bf8

【Nrrd to Nifti file conversion】
https://stackoverflow.com/questions/47761353/nrrd-to-nifti-file-conversion

你可能感兴趣的:(python,数据库,开发语言)