医学图像分割后,如何消除噪声,我采用了去除孤立点的方法。先找到分割结果中的所有连通域,保留最大连通域或者较大的几个连通域,把其余小连通域都去掉。图像是三维的,还蛮有效果的。

import nibabel as nib
import numpy as np
import os
from skimage import measuredef file_name(file_dir):   L=[]   path_list = os.listdir(file_dir)path_list.sort() #对读取的路径进行排序for filename in path_list:if 'nii' in filename:L.append(os.path.join(filename))   return L def Dice(y_true, y_pred):y_true = y_truey_pred = y_predy_true_f = y_true.flatten()y_pred_f = y_pred.flatten()intersection = np.sum(y_true_f * y_pred_f)return (2. * intersection + 1) / (np.sum(y_true_f) + np.sum(y_pred_f) + 1)maskpath = 'F:/dataset/PDDCA/nii111/finalpred/sbr/'#imgnames = file_name(maskpath)imgnames = file_name(maskpath)
gtnames = ''
prednames = ''labels_num = np.zeros(len(prednames))
NUM=[]
P=[]dice_y = np.zeros(len(prednames))
dice_p = np.zeros(len(prednames))
for i in range(len(prednames)):pred = nib.load(maskpath + prednames[i])labels = pred.get_data()gt = nib.load(maskpath + gtnames[i])gtmask = gt.get_data()labelsy = np.copy(labels)labels = measure.label(labels, connectivity=2)max_num = 0for j in range(1, np.max(labels)+1):if np.sum(labels==j) > max_num:max_num = np.sum(labels==j)max_pixel = jprint(np.sum(labels==j), np.sum(labels!=0))if np.sum(labels==j)>0.1*np.sum(labels!=0):labels[labels==j] = max_pixellabels[labels != max_pixel]=0labels[labels == max_pixel]=1
#    labels[labels>1]=0dice_y[i] = Dice(gtmask,labelsy)dice_p[i] = Dice(gtmask,labels)print(dice_y[i], dice_p[i])nib.save(nib.Nifti1Image( labels.astype('uint8'), affine=gt.affine), gtnames[i])

代码是针对我做的具体图像写的,可能有些冗余的地方。关键在于labels = measure.label(labels, connectivity=2) 这行代码,需要深入了解的小伙伴可以看下measure函数的用法。

采用最大连通域算法对三维医学图像分割结果做后处理相关推荐

  1. 【图像分割】基于模糊核聚类算法KFCM实现医学图像分割matlab代码

    1 简介 医学影像分割的基本目标是将图像分割成不同的解剖组织,从而可以从背景中提取出感兴趣区域.因为图像的低分辨率和弱对比度,实现医学影像分割是一件具有挑战的任务.而且,这个任务由于噪声和伪阴影变得更 ...

  2. [医学图像分割综述] Medical Image Segmentation Using Deep Learning: A Survey

    使用深度学习的医学图像分割:一项调查 论文地址 本综述有两个独创之处,首先,与传统的调查方法直接将医学图像分割的文献划分为多个组,并对每个组详细介绍文献的方法相比,我们将目前流行的文献按照从粗到细的多 ...

  3. 医学图像分割方法及卷积神经网络在医学图像分割上的应用

    (最开始接触医学图像分割时写的综述,写的比较幼稚,传上来的时候格式可能有些乱.需要原文的小伙伴可以加我qq:604395564联系,也欢迎做医学图像处理的小伙伴一起交流学习.自己写的,欢迎转载,但请注 ...

  4. 【半监督医学图像分割 2021 CVPR】CVRL 论文翻译

    文章目录 [半监督医学图像分割 2021 CVPR]CVRL 论文翻译 摘要 1. 介绍 1.1 总览 1.2 无监督对比学习 2. 实验 3. 总结 [半监督医学图像分割 2021 CVPR]CVR ...

  5. 基于U-Net的递归残差卷积神经网络在医学图像分割中的应用

    转载: 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/weixin_45723705/ ...

  6. 【图像分割应用】医学图像分割(三)——肿瘤分割

    这是专栏<图像分割应用>的第3篇文章,本专栏主要介绍图像分割在各个领域的应用.难点.技术要求等常见问题. 肿瘤的分割是医学图像分析领域的一个重要内容,相比较前面提到过的脑区域分割和心脏分割 ...

  7. 基于U-Net系列算法的医学图像分割(课程设计)

    基于U-Net系列算法的医学图像分割(课程设计) 参考论文:包括U_Net/R2U_Net/AttU_Net/R2AttU_Net,如下图所示: 基于Pytorch的代码和数据集下载地址:下载地址 运 ...

  8. 李纯明博士的RSF算法源码.水平集医学图像分割

    图像预处理 首先吧nii格式转png,取出单张切片实验,把图像灰度值转到0-255. import os import cv2 from medpy.io import load,save impor ...

  9. 最新《医学图像分割》综述,详述六大类100多个算法

    来源:专知 医学图像自动分割是医学领域的一个重要课题,也是计算机辅助诊断领域的一个重要分支.U-Net由于其灵活性.优化的模块化设计和在所有医学图像模式中的成功,是最广泛应用的图像分割体系结构.多年来 ...

最新文章

  1. wifi动不动就断开_手机信号满格,但是WIFI经常掉线!我来教你怎么办
  2. 我三年开发经验,从字节跳动抖音离职后,原理+实战+视频+源码
  3. PHP创建XML文件讲解
  4. idea修改html不能立刻生效,解决idea debug模式下修改代码却不能生效
  5. 父亲节,来认识一下这几位“爸爸”
  6. 作为一枚学生党,如何快速通过拉好友赚取生活费!
  7. 宽带路由器常见故障排除
  8. Myeclipse中web project各种常见错误及解决方法(持续更新)
  9. /build/tools/caffe.bin工具简析
  10. 360怎么不能一次打完所有补丁?
  11. [licode cs交互] 4 erizo controller对 android client鉴权通过
  12. [Python]等额本息房贷计算器
  13. 我为什么说【直播电商】是第三代电商?
  14. 软件实施整体方案之实施进度表
  15. 苹果平板可以用html么,哪些苹果平板可以用苹果笔
  16. 网络爬虫(网络蜘蛛,网络机器人)与Web安全
  17. 数理逻辑 形式可推演与逻辑推论
  18. 数据 | 全国历史六级以上地震记录制图
  19. 实力踩坑:There is no getter for property named ‘XXX‘ ‘class XXX‘
  20. css股票曲线图图解,如何看懂股票曲线图,一文搞懂这些曲线所代表的含义!

热门文章

  1. LeetCode/LintCode 题解丨一周爆刷双指针: 两数之和
  2. AD 常用快捷键记录
  3. Shell脚本之免交互
  4. 简单理解 TP、FN、FT 及 TN和准确率、精确率、召回率 的含义
  5. 高级Magento模型 EAV
  6. 考研数学二-汤家凤中值定理
  7. android自带的webview有广告,android webview 拦截广告
  8. babel-plugin-transform-remove-consol插件的安装及使用(作用是移除代码里的所有console.log())
  9. 视频格式转换器哪个好?怎样使用?
  10. 新版WordPress网址导航主题模板+自适应WAP