医疗影像分割,从3d图像获取2d slice

大家好啊,我是morning777,今天给大家带来些想看的东西啊。

最近在做有关医疗影像分割的项目,原本使用了3dunet,在BTCV数据集上做实验,但是之后发现很多的官方示例都是在2维影像上使用的,所以研究了一下怎么从3d中提取2d图像。

首先还是先和大家介绍一下我是如何运行3d影像分割的,主要使用了tutorials/3d_segmentation/unetr_btcv_segmentation_3d.ipynb at main · Project-MONAI/tutorials (github.com)icon-default.png?t=N7T8https://github.com/Project-MONAI/tutorials/blob/main/3d_segmentation/unetr_btcv_segmentation_3d.ipynb

该项目便是monai给的例程,完全是基于BTCV的raw data来做的。https://github.com/Project-MONAI/tutorials/blob/main/modules/2d_slices_from_3d_training.ipynb

上述连接则是MONAI给出的从3d图像得到2d图像的例程,上述两种方法全都是使用了monai的API,但是我将上述两个例程结合起来的时候容易出问题,大伙其实也可以试试。

另外一种方法主要是下面的例程:

CASCADE/utils/preprocess_synapse_data.py at main · SLDGroup/CASCADE (github.com)icon-default.png?t=N7T8https://github.com/SLDGroup/CASCADE/blob/main/utils/preprocess_synapse_data.py采取的不一样的思路,将3d图像读取后,直接按顺序将每个切片保存。

关键代码:

for s_idx in range(ct_array.shape[0]):
    ct_array_s = ct_array[s_idx, :, :]
    seg_array_s = seg_array[s_idx, :, :]
    slice_no = "{:03d}".format(s_idx)
    new_ct_name = ct_number.replace('img', 'case') + '_slice' + slice_no
    np.savez(os.path.join(save_path, new_ct_name), image=ct_array_s, label=seg_array_s)

s_idx就代表每个切片的编号,将每个切片保存就好啦!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值