.nii格式文件批量读取保存为.png格式Python实现

.nii格式文件批量读取保存为.png格式

一、内容

在医学图像处理中,经常会遇到.nii格式的文件,如何转换为方便的可视化图片格式经常会用到。

二、代码

# 遍历文件夹
import os  
# nii格式一般都会用到这个包
import nibabel as nib  
# 转换成图像
import imageio  

# 主函数
def nii_to_image(filepath):
    # 读取nii文件夹
    filenames = os.listdir(filepath)
    
    # 开始读取nii文件
    for f in filenames:
        img_path = os.path.join(filepath, f)
        img = nib.load(img_path)  # 读取nii
        img_fdata = img.get_fdata()
        # 去掉nii的后缀名
        fname = f.replace('.nii', '')  
        img_f_path = os.path.join(imgfile, fname)

        # 创建nii对应的图像的文件夹
        if not os.path.exists(img_f_path):
            # 新建文件夹
            os.mkdir(img_f_path)  

        # 开始转换为图像
        (x, y, z) = img.shape
        # z是图像的序列
        for i in range(z):
            # 选择哪个方向的切片都可以
            silce = img_fdata[:, :, i]
            # 保存图像
            imageio.imwrite(os.path.join(img_f_path, '{}.png'.format(i)), silce)

if __name__ == '__main__':
    filepath = 'D:/DeepLearning/LITS2017/jizhui/'
    imgfile = 'D:/DeepLearning/LITS2017/test/'
    nii_to_image(filepath)

三、结果

1.肝脏数据集

.nii格式文件批量读取保存为.png格式Python实现_第1张图片

你可能感兴趣的:(python)