对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矩阵,两个矩阵分别如下:
1111111111111111111011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111(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} 1111111111111​1111111111111​1111111111111​1111111111111​1111111111111​1111111111111​1011111111111​1111111111111​1111111111111​1111111111111​1111111111111​1111111111111​1111111111111​(1)
矩阵B:
111111111(2)\begin{matrix} 1 &1 &1 \\ 1& 1 &1 \\ 1 &1& 1 \\ \end{matrix} \tag{2} 111​111​111​(2)
使用矩阵B对A进行腐蚀:
B的原点依次经过矩阵的每一个像素值,当此像素值为1并且在B覆盖的所有像素值都是1的时候,保存此像素值,否则,此像素值置为0.

因此,A被B侵蚀的情况由这个13x13矩阵给出。
0000000000000011110001111001111000111100111111111110011111111111001111111111100111111111110011111111111001111111111100111111111110011111111111001111111111100000000000000(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} 0000000000000​0111111111110​0111111111110​0111111111110​0111111111110​0001111111110​0001111111110​0001111111110​0111111111110​0111111111110​0111111111110​0111111111110​0000000000000​(3)

有关Dilation的操作

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

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

  1. 医疗影像处理:去除医疗影像中背景的影响2D/3D【numpy-code】| CSDN博文精选

    BDTC大会官网:https://t.csdnimg.cn/q4TY 作者 | chestnut-- 来源 | CSDN博客 在医疗影像中特别是CT影像,包含大量的背景,在进行器官分割时,首先去除背景 ...

  2. 【计算机视觉】新冠肺炎COVID-19 CT影片阳性检测,感染区域分割,肺部分割,智慧医疗实践,医疗影像处理示例

    引言 新型冠状病毒肺炎(Corona Virus Disease 2019,COVID-19),简称"新冠肺炎",世界卫生组织命名为"2019冠状病毒病".截止 ...

  3. 智慧医疗app使用手册(Intelligent medical treatment)

    目录 一.登录界面使用 1.设置地址 2.注册功能 3.登录功能 4.记住密码 5.暂不登录(游客功能) 二.首页界面使用 三.医院介绍功能 四.自助导诊功能 五.预约挂号功能 六.门诊记录功能 七. ...

  4. 关于xtk.js的使用(医疗影像处理插件)

    由于公司项目需要,我学习了xtk.js,用于显示obj.vtk.mtl等文件中的内容.效果如图: xtk.js能够实现obj文件的显示.3D影像的视口改变.影像移动.放大缩小,并能够适配平板端. 我主 ...

  5. 医疗影像处理入门篇读入*.mhd数据解析ElementSpacing参数

    关于Dicom数据 使用pydicom包即可,网上有很多写的比较详细的,我就不搬运了,不了解的还请自行百度 读取*.mhd数据 有一些数据集提供的是mhd格式的数据,还有一些是*.nii.gz的数据, ...

  6. python医疗系统代码_吴裕雄 人工智能 java、javascript、HTML5、python、oracle ——智能医疗系统WEB端复诊代码简洁版实现...

    #诊断逻辑代码 importsysimportosimporttimeimportoperatorimportcx_Oracleimportnumpy as npimportpandas as pdi ...

  7. python医疗系统代码_吴裕雄 人工智能 java、javascript、HTML5、python、oracle ——智能医疗系统WEB端初诊代码简洁版实现...

    #系统核心事务逻辑处理代码 importsysimportosimportcx_Oracleimportnumpy as npimportpandas as pdimporttensorflow as ...

  8. 图像的腐蚀(erosion)和膨胀(dilation)

    其实就是定义一个连通规则(structure),用该连通区域在图像上stride, 用连通区域内的最小或者最大值代替原来的值.(边界上只覆盖部分值). 腐蚀和膨胀的一个作用是提取二值图像的边界.腐蚀一 ...

  9. Structure Boundary Preserving Segmentation for Medical Image with Ambiguous Boundary

    具有模糊边界的医疗影像边界结构保护分割 论文标题 Structure Boundary Preserving Segmentation for Medical Image with Ambiguous ...

  10. [Medical Image Process] 3.2 GrayScale Morphology(灰阶图像形态学及基本运算)

    1.灰阶图像形态学 二值图像形态学向灰度空间的一个扩展.同样包含Dilation(膨胀).Erosion(腐蚀).Opening(开运算).Closing(闭运算).灰度图像形态学运算同时作用在位置和 ...

最新文章

  1. DRX不连续接收(1)
  2. 帆软finereport实现动态切换分组和列表模式
  3. 使用反应流API将Akka流与rxJava结合在一起
  4. 如何用iOS工程生成iOS模拟器包
  5. 基于 FFMPEG 的音频编解码(一):Hello FFMPEG,安装与编译
  6. java freemark 使用_freemarker单独使用介绍
  7. 使用tc对linux中某ip段限速
  8. 一些常用的正交试验表生成: 单一水平、混合水平、交互作用
  9. Matlab fftshift函数 C 代码实现
  10. 飞鸽传书【经典版】(飞鸽传书2011)
  11. Neutron的Router简介
  12. jQuery DOM操作
  13. IP-guard苹果加密软件苹果系统加密Mac文档加密软件
  14. 经典数据结构之2-3树
  15. python画图--柱状图
  16. ctf(EasySQL)
  17. android java 线程通信_Android 线程间通信
  18. 小票打印机打印出空白
  19. 群晖搭建Blynk服务器 可开外网及改Mixly文件完美支持教程
  20. 2023最新SSM计算机毕业设计选题大全(附源码+LW)之java庆阳红色旅游网站建设s237y

热门文章

  1. vss 6.0配置VS2005、VS2008 ---- 图文
  2. 咱也写个小写数字转大写金额 ,纯粹字符串操作实现
  3. 1.阿里云短信验证操作步骤
  4. 一行命令开启VNC 和windows之间复制粘贴功能
  5. 三言两语说清“线性流程”
  6. Python--网络编程-----通过socket收发文件软件开发--面向对象开发
  7. mybatis--面向接口编程
  8. js之事件冒泡和事件捕获详细介绍
  9. SQL HAVING 用法详解
  10. python获取某个模块文件的路径