采用最大连通域算法对三维医学图像分割结果做后处理
医学图像分割后,如何消除噪声,我采用了去除孤立点的方法。先找到分割结果中的所有连通域,保留最大连通域或者较大的几个连通域,把其余小连通域都去掉。图像是三维的,还蛮有效果的。
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函数的用法。
采用最大连通域算法对三维医学图像分割结果做后处理相关推荐
- 【图像分割】基于模糊核聚类算法KFCM实现医学图像分割matlab代码
1 简介 医学影像分割的基本目标是将图像分割成不同的解剖组织,从而可以从背景中提取出感兴趣区域.因为图像的低分辨率和弱对比度,实现医学影像分割是一件具有挑战的任务.而且,这个任务由于噪声和伪阴影变得更 ...
- [医学图像分割综述] Medical Image Segmentation Using Deep Learning: A Survey
使用深度学习的医学图像分割:一项调查 论文地址 本综述有两个独创之处,首先,与传统的调查方法直接将医学图像分割的文献划分为多个组,并对每个组详细介绍文献的方法相比,我们将目前流行的文献按照从粗到细的多 ...
- 医学图像分割方法及卷积神经网络在医学图像分割上的应用
(最开始接触医学图像分割时写的综述,写的比较幼稚,传上来的时候格式可能有些乱.需要原文的小伙伴可以加我qq:604395564联系,也欢迎做医学图像处理的小伙伴一起交流学习.自己写的,欢迎转载,但请注 ...
- 【半监督医学图像分割 2021 CVPR】CVRL 论文翻译
文章目录 [半监督医学图像分割 2021 CVPR]CVRL 论文翻译 摘要 1. 介绍 1.1 总览 1.2 无监督对比学习 2. 实验 3. 总结 [半监督医学图像分割 2021 CVPR]CVR ...
- 基于U-Net的递归残差卷积神经网络在医学图像分割中的应用
转载: 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/weixin_45723705/ ...
- 【图像分割应用】医学图像分割(三)——肿瘤分割
这是专栏<图像分割应用>的第3篇文章,本专栏主要介绍图像分割在各个领域的应用.难点.技术要求等常见问题. 肿瘤的分割是医学图像分析领域的一个重要内容,相比较前面提到过的脑区域分割和心脏分割 ...
- 基于U-Net系列算法的医学图像分割(课程设计)
基于U-Net系列算法的医学图像分割(课程设计) 参考论文:包括U_Net/R2U_Net/AttU_Net/R2AttU_Net,如下图所示: 基于Pytorch的代码和数据集下载地址:下载地址 运 ...
- 李纯明博士的RSF算法源码.水平集医学图像分割
图像预处理 首先吧nii格式转png,取出单张切片实验,把图像灰度值转到0-255. import os import cv2 from medpy.io import load,save impor ...
- 最新《医学图像分割》综述,详述六大类100多个算法
来源:专知 医学图像自动分割是医学领域的一个重要课题,也是计算机辅助诊断领域的一个重要分支.U-Net由于其灵活性.优化的模块化设计和在所有医学图像模式中的成功,是最广泛应用的图像分割体系结构.多年来 ...
最新文章
- wifi动不动就断开_手机信号满格,但是WIFI经常掉线!我来教你怎么办
- 我三年开发经验,从字节跳动抖音离职后,原理+实战+视频+源码
- PHP创建XML文件讲解
- idea修改html不能立刻生效,解决idea debug模式下修改代码却不能生效
- 父亲节,来认识一下这几位“爸爸”
- 作为一枚学生党,如何快速通过拉好友赚取生活费!
- 宽带路由器常见故障排除
- Myeclipse中web project各种常见错误及解决方法(持续更新)
- /build/tools/caffe.bin工具简析
- 360怎么不能一次打完所有补丁?
- [licode cs交互] 4 erizo controller对 android client鉴权通过
- [Python]等额本息房贷计算器
- 我为什么说【直播电商】是第三代电商?
- 软件实施整体方案之实施进度表
- 苹果平板可以用html么,哪些苹果平板可以用苹果笔
- 网络爬虫(网络蜘蛛,网络机器人)与Web安全
- 数理逻辑 形式可推演与逻辑推论
- 数据 | 全国历史六级以上地震记录制图
- 实力踩坑:There is no getter for property named ‘XXX‘ ‘class XXX‘
- css股票曲线图图解,如何看懂股票曲线图,一文搞懂这些曲线所代表的含义!
热门文章
- LeetCode/LintCode 题解丨一周爆刷双指针: 两数之和
- AD 常用快捷键记录
- Shell脚本之免交互
- 简单理解 TP、FN、FT 及 TN和准确率、精确率、召回率 的含义
- 高级Magento模型 EAV
- 考研数学二-汤家凤中值定理
- android自带的webview有广告,android webview 拦截广告
- babel-plugin-transform-remove-consol插件的安装及使用(作用是移除代码里的所有console.log())
- 视频格式转换器哪个好?怎样使用?
- 新版WordPress网址导航主题模板+自适应WAP