医学图像处理(二)Python rawb数据读取、转换nii

小白的学习之旅又前进一小小步,所有内容都是实践过程中确实经历过的,有理解不准确的还请大家留言,多多交流~

最近使用Brainweb时第一次遇见rawb格式的脑数据,本文总结rawb数据的python读取方法,以及将rawb数据转换成nii数据,方便用itk snap等软件查看

Brainweb的数据包括灰质白质等标签,下载方便。
链接:https://brainweb.bic.mni.mcgill.ca/brainweb/

Python读Brainweb的rawb数据

Brainweb提供的rawb数据不包含头信息,只是像素点信息的数组,头信息可以在下载的页面查看到。

读取方法:

import numpy as np
import nibabel as nib

# LI:读.rawb文件的数据,path是文件所在路径,自己加上就可以
img_data = np.fromfile(path, dtype='uint8')
# LI:将一维数据转换成三维数据,z*y*x:181*217*181
data_new_shape = img_data.reshape(181, 217, 181)
# LI:转换成nii图像,并存储
raw_affine = np.diag([-1, -1, 1, 1])
array_img = nib.Nifti1Image(data_new_shape, raw_affine)
nib.save(array_img, 'raw_new.nii')

在转换nii这步中参考博客了:
https://blog.csdn.net/wy8grw08/article/details/82823992?depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-4&utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-4

原文中np.diag(-1,-1,1,1)缺少了中括号,应为:
np.diag([-1, -1, 1, 1])

这一步的具体原理我还没弄明白只知道affine得到的是4*4矩阵,在uint8格式下对角线值是-1,-1,1,1,哪位大神明白原理也请留言告诉我,谢谢~

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值