python读取nii文件_python使用nibabel和sitk读取保存nii.gz文件实例

保存nii.gz文件

nib.Nifti1Image(img,img_affine).to_filename('xxxxx.nii.gz')

使用sitk

使用sitk读取nii时,读取出来的还是图片格式,可以使用他自带的函数进行处理,不过速度比较慢,建议使用GetArrayFromImage转换成numpy格式再处理,3维图像格式为(x, y, z)

读取nii.gz文件

img = sitk.ReadImage('xxxxx.nii.gz')

img = sitk.GetArrayFromImage(img)

保存nii.gz文件

out = sitk.GetImageFromArray(img)

sitk.WriteImage(out,'xxxxx.nii.gz')

在numpy数组和nibabel或sitk中相互转换时,要注意数据的格式,一般保存为int或uint类型。比如输入nii为16位有符号整型时,我们可能需要转换成0~255灰度图,可用如下代码:

img = sitk.ReadImage('xxxxx.nii.gz')

img = sitk.Cast(sitk.RescaleIntensity(img),sitk.sitkUInt8)

img = sitk.GetArrayFromImage(img)

补充知识:SimpleITK保存Nii文件与错误处理方式

Reason:

把处理好的分割结果保存为nii文件,用ITKsnap读取时出现了如下错误。

SimpleITK读取和保存Nii文件

1. 读取

import SimpleITK as sitk

filename = './xxx.nii'

ct = sitk.ReadImage(filename)

ct_array = sitk.GetArrayFromImage(ct)

origin =ct.GetOrigin()

direction = ct.GetDirection()

space = ct.GetSpacing()

2. 保存

savedImg = sitk.GetImageFromArray(ct_array)

savedImg.SetOrigin(origin)

savedImg.SetDirection(direction)

savedImg.SetSpacing(space)

sitk.WriteImage(savedImg, saved_name)

猜您喜欢

最近遇到一个棘手的问题,需要查找含有某个关键字的网页,但是通过chrome原生的历史记录查出来的,查到的结果并不满意,今天小编就给大家分享一篇教程帮助大家解决Chrome历史记录的问题,感兴趣的朋友一起看看吧..

数据的校验是交互式网站一个不可或缺的功能,数据验证分为客户端验证和服务器端验证,本文着重讲解了springMVC怎样对输入数据校验,欢迎大家阅读和收藏..

网友评论

Copyright 2020 www.SoftYun.net 【软件云】 版权所有

声明:所有软件和文章来自软件开发商或者作者 如有异议 请与本站联系 点此查看联系方式