学无先后,达者为师

网站首页 编程语言 正文

将numpy array保存为nii格式 itk-snap打不开

作者:平凡的久月 更新时间: 2022-04-01 编程语言

将.nii文件读取成numpy array是很常见的,但将分割好的结果numpy array保存为nii格式却也是必须的。
现在介绍两种将numpy array保存为nii格式的方法。

1. simpleITK

## using simpleITK to load and save data.
import SimpleITK as sitk
itk_img = sitk.ReadImage('./nifti.nii.gz')
img = sitk.GetArrayFromImage(itk_img)
print("img shape:",img.shape)

## save 
out = sitk.GetImageFromArray(img)
sitk.WriteImage(out,'simpleitk_save.nii.gz')

2. Nibabel

import nibabel as nib 
import numpy as np 
 
new_image = nib.Nifti1Image(my_arr, np.eye(4)) 
nib.save(new_image, 'nifti.nii.gz') 

******** 高能预警
将 numpy array 保存为 nii 格式图像之后,使用 itk-snap 却打不开,这是为什么呢?
原来 itk-snap 只接受 int16 类型的数据,所以你需要 将 numpy 数组强制转换成 int16 类型

## save 
out = sitk.GetImageFromArray(img)
out = out.astype(np.int16)
sitk.WriteImage(out,'simpleitk_save.nii.gz')

原文链接:https://blog.csdn.net/qq_33254870/article/details/103387991

栏目分类
最近更新