Lena_wang1218 2022-10-04 18:55 采纳率: 66.7%
浏览 67
已结题

怎样用python-nibabel批量处理并保存nii图像?

怎样用python-nibabel批量处理并保存nii图像?
我有一批病人,每个人都做了fMRI,一共180期。我需要把这些人的左右脑翻转过来,我现在已经会了单个人的nii图像翻转,现在想批量把180期的nii图像都处理并保存。
这是现在的代码,已经实现了批量读取文件,处理文件,就是最后一步分别保存文件我不会,请帮我看看应该怎么写这个部分?

list = get_filelist(NII_DIR, [])
print(len(list))
type(list)

for i in list:
    def read_nii_file1(nii_path):
        nii_img=nib.load(nii_path)
        return nii_img
    nii_img=read_nii_file1(os.path.join(i))

    from nilearn.image import new_img_like
    print(nii_img.affine.shape)
    print(nii_img.affine)

    def flip_image(image, axis):
        try:
            new_data = np.copy(image.get_fdata())
            for axis_index in axis:
                new_data = np.flip(new_data, axis=axis_index)
        except TypeError:
            new_data = np.flip(image.get_fdata(), axis=axis)
        return new_img_like(image, data=new_data)

    new_image = flip_image(nii_img, axis=[0])

    affine = new_image.affine.copy()
    hdr = new_image.header.copy()

    new_data = new_image.get_fdata()
    new_nii = nib.Nifti1Image(new_data, affine, hdr)

#就是后面这个地方我不知道怎么分别保存处理之后的nii图像
    New_NII_DIR = ('/Users/lena/test_new/001.nii')
    nib.save(new_nii, New_NII_DIR)

img

  • 写回答

1条回答 默认 最新

  • _GX_ 2022-10-04 19:14
    关注

    最后两句改为

        New_NII_DIR = '/Users/lena/test_new/'
        new_filename = os.path.join(New_NII_DIR, os.path.basename(i)+"_flipped.nii")
        nib.save(new_nii, new_filename)
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 10月14日
  • 已采纳回答 10月6日
  • 创建了问题 10月4日

悬赏问题

  • ¥15 delphi webbrowser组件网页下拉菜单自动选择问题
  • ¥15 linux驱动,linux应用,多线程
  • ¥20 我要一个分身加定位两个功能的安卓app
  • ¥15 基于FOC驱动器,如何实现卡丁车下坡无阻力的遛坡的效果
  • ¥15 IAR程序莫名变量多重定义
  • ¥15 (标签-UDP|关键词-client)
  • ¥15 关于库卡officelite无法与虚拟机通讯的问题
  • ¥15 目标检测项目无法读取视频
  • ¥15 GEO datasets中基因芯片数据仅仅提供了normalized signal如何进行差异分析
  • ¥100 求采集电商背景音乐的方法