nii转2d图像代码

该脚本用于将NIfTI格式的医学图像数据读取并按指定切片范围转换为PNG图片,同时将图片移动到目标文件夹。它遍历指定文件夹中的所有NIfTI文件,对每个文件提取特定切片并保存为PNG,最后将生成的图片移动到结果文件夹。
摘要由CSDN通过智能技术生成
import scipy, numpy, shutil, os, nibabel
import sys, getopt
import imageio

def niito2D(filepath):
    inputfiles = os.listdir(filepath)  #遍历文件夹数据
    outputfile = 'result\\'       #输出文件夹
    print('Input file is ', inputfiles)
    print('Output folder is ', outputfile)

    for inputfile in inputfiles:
        image_array = nibabel.load(filepath+inputfile).get_data() #数据读取
        print(len(image_array.shape))

        # set destination folder
        if not os.path.exists(outputfile):
            os.makedirs(outputfile)   #不存在输出文件夹则新建
            print("Created ouput directory: " + outputfile)
        print('Reading NIfTI file...')

        total_slices = 30  #总切片数
        slice_counter = 70 #从第几个切片开始

        # iterate through slices
        for current_slice in range(70, 70+total_slices):
            # alternate slices
            if (slice_counter % 1) == 0:
                data = image_array[:, :, current_slice]  #保存该切片

                # alternate slices and save as png
                if (slice_counter % 1) == 0:
                    print('Saving image...')
                    #切片命名
                    image_name = inputfile[:-4] + "{:0>3}".format(str(current_slice + 1)) + ".png"
                    #保存
                    imageio.imwrite(image_name, data)
                    print('Saved.')

                    # move images to folder
                    print('Moving image...')
                    src = image_name
                    shutil.move(src, outputfile)
                    slice_counter += 1
                    print('Moved.')

    print('Finished converting images')

if __name__ == '__main__':
    niito2D('img\\')
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值