当前位置:   article > 正文

Python读取医学图象nii格式数据进行裁剪,并保存_nii python 裁剪

nii python 裁剪

Python读取医学图象nii格式数据进行裁剪,并保存

本文是通过nibabel和numpy模块实现可视化的。如有不足请多多指教,一起学习。


导入模块:

import time, os
import nibabel as nib
import numpy as np
  • 1
  • 2
  • 3


使用nibabel进行裁剪:
裁剪指定大小函数:

def cut_newdata(img_t1_name,img_t1_name1):
    img_t1 = nib.load(img_t1_name)
    img_t1_affine = img_t1.get_affine()
    img_t1_data = img_t1.get_data()
    img_t1_data1 = img_t1_data[10:490,10:470,18:138] # 可改大小,本实验裁成480*460*120
    img_t1 = nib.Nifti1Image(img_t1_data1, img_t1_affine)
    nib.save(img_t1, img_t1_name1)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7


使用nibabel进行补齐指定大小:
补齐指定大小函数:
# 可改大小,原大小145174145,现大小128160128

def padding_data(img_t1_name,img_t1_name1):
    img_t1 = nib.load(img_t1_name)
    img_t1_affine = img_t1.get_affine()
    img_t1_data = img_t1.get_data()
    img_t1_data = np.squeeze(img_t1_data)
    empty_data = np.zeros([145,174,145])   
    empty_data[10:138,10:170,10:138] = img_t1_data
    img_t1 = nib.Nifti1Image(empty_data, img_t1_affine)
    nib.save(img_t1, img_t1_name1)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9


主函数

path = '/media/gll/Work/1/test/'
    dir = os.listdir(path)
    for data in dir:
        data_path = path + data
        cut_newdata(data_path,data_path)
        # cut_newdata(data_path, data_path)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

完整程序

import time, os
import nibabel as nib
import numpy as np


def cut_newdata(img_t1_name,img_t1_name1):
    img_t1 = nib.load(img_t1_name)
    img_t1_affine = img_t1.get_affine()
    img_t1_data = img_t1.get_data()
    img_t1_data1 = img_t1_data[10:490,10:470,18:138]
    img_t1 = nib.Nifti1Image(img_t1_data1, img_t1_affine)
    nib.save(img_t1, img_t1_name1)
def padding_data(img_t1_name,img_t1_name1):
    img_t1 = nib.load(img_t1_name)
    img_t1_affine = img_t1.get_affine()
    img_t1_data = img_t1.get_data()
    img_t1_data = np.squeeze(img_t1_data)
    empty_data = np.zeros([145,174,145])
    empty_data[10:138,10:170,10:138] = img_t1_data
    img_t1 = nib.Nifti1Image(empty_data, img_t1_affine)
    nib.save(img_t1, img_t1_name1)
if __name__ == '__main__':
    path = '/media/xl/Work/1/test/'
    dir = os.listdir(path)
    for data in dir:
        data_path = path + data
        cut_newdata(data_path,data_path)
        # cut_newdata(data_path, data_path)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/article/detail/45517
推荐阅读
相关标签
  

闽ICP备14008679号