[Python] Python 旋转、flip Nifti三维数据 (Python Rotate and Flip Nifti volume)

本文介绍了使用NiBabel库在Python中旋转和翻转Nifti三维数据的方法。需要注意的是,这种变换仅改变头部的仿射矩阵信息,实际数据不受影响。在ITK-Snap加载.nii文件时,会根据仿射矩阵进行转换。然而,这种变换在Matlab的Nifti工具箱中无法识别,会导致错误提示。为解决此问题,需要按照仿射矩阵真正地重新切片体积数据。
摘要由CSDN通过智能技术生成
__author__ = 'xin yang'


import os
import nibabel as nib
import numpy as np
import math


src_us_folder = 'G:/Temp/Data/src/us'
src_seg_folder = 'G:/Temp/Data/src/seg'

aug_us_folder = 'G:/Temp/Data/aug/us'
aug_seg_folder = 'G:/Temp/Data/aug/seg'

img_n= 10
rotate_theta = np.array([0, math.pi/2])

# augmentation
aug_cnt = 0
for k in range(img_n):
    src_us_file = os.path.join(src_us_folder, (str(k) + '.nii'))
    src_seg_file = os.path.join(src_seg_folder, (str(k) + '_seg.nii'))
    # load .nii files
    src_us_vol = nib.load(src_us_file)
    src_seg_vol = nib.load(src_seg_file)
    # volume data
    us_vol_data = src_us_vol.get_data()
    us_vol_data = (np.array(us_vol_data)).astype('uint8')
    seg_vol_data = src_seg_vol.get_data()
    seg_vol_data = (np.array(seg_vol_data)).astype('uint8')
    # get refer
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值