【医疗影像处理】Erosion and Dilation of medical images masks using scipy.ndimage in python

对2D或者3D的医疗影像mask进行膨胀和腐蚀处理。
参考使用库scipy.ndimage

要完成的事

对3D的脑mask进行膨胀和腐蚀操作。

数据初探

脑影像——已去脑壳并配准到标准模版上,可自己下载实验,卡阈值0得到脑mask:
index 116
在这里插入图片描述
index 80
在这里插入图片描述

对数据进行膨胀操作

将脑mask中的空洞进行填补。

brain_mask2 = ndimage.binary_closing(brain_mask, structure=np.ones((5,5,5)))

其中brain_mask : 3D脑mask array。可以使用simpleITK或者antspy读取矩阵信息。
膨胀之后的效果:
在这里插入图片描述
中间的孔洞被填补了,然后我们再进行腐蚀操作,减小脑的mask。

对数据进行腐蚀操作
brain_mask3 = ndimage.binary_erosion(brain_mask2, structure=np.ones((10,10,10)))

brain_mask2为上一个填补孔洞之后的脑mask。
膨胀之后再腐蚀的效果:
在这里插入图片描述
红色为被腐蚀掉的边界。
我们获得了比脑mask更小的mask。

有关erosion的操作

参考:https://en.wikipedia.org/wiki/Erosion_%28morphology%29

矩阵A需要被腐蚀,使用B矩阵,两个矩阵分别如下:
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 (1) \begin{matrix} 1 &1 &1 &1 &1 &1 &1& 1&1 &1& 1 &1 &1 \\ 1& 1 &1 &1&1&1 &0 &1 &1 &1& 1& 1 &1 \\ 1 &1& 1& 1 &1& 1 &1 &1& 1 &1 &1 &1 &1 \\ 1 &1 &1& 1 &1 &1 &1& 1 &1 &1 &1 &1 &1 \\ 1 &1 &1& 1 &1& 1 &1 &1 &1 &1& 1 &1& 1 \\ 1 &1 &1 &1 &1 &1&1 &1& 1& 1 &1 &1 &1 \\ 1 &1 &1 &1 &1 &1&1 &1& 1& 1 &1 &1 &1 \\ 1 &1 &1 &1 &1 &1&1 &1& 1& 1 &1 &1 &1 \\ 1 &1 &1 &1 &1 &1&1 &1& 1& 1 &1 &1 &1 \\ 1 &1 &1 &1 &1 &1&1 &1& 1& 1 &1 &1 &1 \\ 1 &1 &1 &1 &1 &1&1 &1& 1& 1 &1 &1 &1 \\ 1 &1 &1 &1 &1 &1&1 &1& 1& 1 &1 &1 &1 \\ 1 &1 &1 &1 &1 &1&1 &1& 1& 1 &1 &1 &1 \\ \end{matrix} \tag{1} 1111111111111111111111111111111111111111111111111111111111111111111111111111111011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111(1)
矩阵B:
1 1 1 1 1 1 1 1 1 (2) \begin{matrix} 1 &1 &1 \\ 1& 1 &1 \\ 1 &1& 1 \\ \end{matrix} \tag{2} 111111111(2)
使用矩阵B对A进行腐蚀:
B的原点依次经过矩阵的每一个像素值,当此像素值为1并且在B覆盖的所有像素值都是1的时候,保存此像素值,否则,此像素值置为0.

因此,A被B侵蚀的情况由这个13x13矩阵给出。
0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 1 1 1 1 0 0 1 1 1 1 0 0 0 1 1 1 1 0 0 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 (3) \begin{matrix} 0 &0 &0 &0&0 &0 &0& 0&0&0& 0 &0 &0 \\ 0& 1 &1 &1&1&0 &0 &0 &1 &1& 1& 1 &0 \\ 0 &1& 1& 1 &1& 0 &0 &0& 1 &1 &1 &1 &0 \\ 0 &1 &1& 1 &1 &1 &1& 1 &1 &1 &1 &1 &0 \\ 0 &1 &1& 1 &1& 1 &1 &1 &1 &1& 1 &1&0 \\ 0 &1 &1 &1 &1 &1&1 &1& 1& 1 &1 &1 &0 \\ 0 &1 &1 &1 &1 &1&1 &1& 1& 1 &1 &1 &0 \\ 0&1 &1 &1 &1 &1&1 &1& 1& 1 &1 &1 &0 \\ 0 &1 &1 &1 &1 &1&1 &1& 1& 1 &1 &1 &0 \\ 0 &1 &1 &1 &1 &1&1 &1& 1& 1 &1 &1 &0 \\ 0 &1 &1 &1 &1 &1&1 &1& 1& 1 &1 &1 &0 \\ 0 &1 &1 &1 &1 &1&1 &1& 1& 1 &1 &1 &0 \\ 0 &0 &0 &0&0 &0 &0& 0&0&0& 0 &0 &0 \\ \end{matrix} \tag{3} 0000000000000011111111111001111111111100111111111110011111111111000011111111100001111111110000111111111001111111111100111111111110011111111111001111111111100000000000000(3)

有关Dilation的操作

参考: https://en.wikipedia.org/wiki/Dilation_(morphology)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值