nibabel与simpleitk对修改后的医学图像无损失的保存

由于一些需求,需要对更改nii格式的医学图像的内部矩阵,并且无损失的重新保存成新的nii数据。nibabel和simpleitk都可以对医学图像进行读取和保存。但是Nifti数据本身除了矩阵信息,还有和物理坐标相关的仿射矩阵以及Header头文件信息。

1.nibabel保存新的nii文件

nii_image=nib.load('文件地址')
#将仿射矩阵和头文件保存下来
affine=nii_image.affine
hdr=nii_image.header

#将矩阵信息保存下来
nii_data=nii_image.get_data()
image = RandomCrop(nii_data, crop_factor=(128, 128, 128))#裁剪图片

#形成新的nii文件
new_nii=nib.Nifti1Image(image,affine,hdr)
nib.save(new_nii,'新文件地址')

2.SimpleITK 保存新的nii文件

image=sitk.ReadImage('文件地址')
direction=image.GetDirection()
spacing=image.GetSpacing()
origin=image.GetOrigin()
image_arr=sitk.GetArrayFromImage(image)
new_arr=RandomCrop(image_arr,crop_factor=(128,128,128))#裁剪图像
new_image=sitk.GetImageFromArray(new_arr)
new_image.SetSpacing(spacing)
new_image.SetOrigin(origin)
new_image.SetDirection(direction)
sitk.WriteImage(new_image,'新文件地址')

  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值