nibabel和SimpleITK对NIFTI文件的读取和保存

ITKsnap的读取原始图片:

KiTS data

nibabel和SimpleITK对NIFTI文件的读取和保存_第1张图片

LiTS data

nibabel和SimpleITK对NIFTI文件的读取和保存_第2张图片

读取和保存NIFTI文件

import nibabel as nib#nib.save(img, os.path.join('output', 'test.nii.gz')
import SimpleITK as sitk
import os
kits_ct = "../case_00000/imaging.nii.gz"
kits_seg = "../case_00000/segmentation.nii.gz"
lits_ct = '../volume-0.nii'
lits_seg = '../segmentation-0.nii'
vol = nib.load(kits_ct)#.get_data()
seg = nib.load(kits_seg)
nib.save(vol,'./kits_nib.nii.gz')
print('kits nib ct,seg',vol.shape,seg.shape)
ct_array = sitk.GetArrayFromImage(sitk.ReadImage(kits_ct,sitk.sitkFloat32))
seg_array = sitk.GetArrayFromImage(sitk.ReadImage(kits_seg, sitk.sitkFloat32))
# sitk.WriteImage(ct_array, './kits_sitk.nii.gz')
newImg = sitk.GetImageFromArray(ct_array)
sitk.WriteImage(newImg, './kits_sitk.nii')
print('kits sitk ct,seg', ct_array.shape, seg_array.shape)

输出的shape属性在这里插入图片描述

nibable读取NIFTI文件,读取到的shape和itksnap的显示格式一致,而simpleITK不同。

ITKsnap读取保存图片:

nibabel和SimpleITK对NIFTI文件的读取和保存_第3张图片nibabel和SimpleITK对NIFTI文件的读取和保存_第4张图片

vol = nib.load(lits_ct)  # .get_data()
seg = nib.load(lits_seg)
nib.save(vol,'./lits_nib.nii.gz')
print('lits nib ct,seg', vol.shape, seg.shape)
ct_array = sitk.GetArrayFromImage(sitk.ReadImage(lits_ct, sitk.sitkFloat32))
seg_array = sitk.GetArrayFromImage(sitk.ReadImage(lits_seg, sitk.sitkFloat32))
# sitk.WriteImage(ct_array, './lits_sitk.nii.gz')
newImg = sitk.GetImageFromArray(ct_array)
sitk.WriteImage(newImg, './lits_sitk.nii')
print('lits sitk ct,seg', ct_array.shape, seg_array.shape)

在这里插入图片描述
ITKsnap的读取保存图片:
nibabel和SimpleITK对NIFTI文件的读取和保存_第5张图片
nibabel和SimpleITK对NIFTI文件的读取和保存_第6张图片

保存修改后的图片

#使用nibabel保存array
affine = np.diag([1, 2, 3, 1])
new_image = nib.Nifti1Image(vol_array,affine)
nib.save(new_image, 'new_image.nii.gz')
#使用simpleITK保存array
newImg = sitk.GetImageFromArray(savedImg)
newImg.SetOrigin(origin)
newImg.SetDirection(direction)
newImg.SetSpacing(zxy_thickness)
sitk.WriteImage(newImg, saved_name)

nibabel只能保存位压缩模式,使用itksnap打开图像比较耗时。

你可能感兴趣的:(Medical,Image)