LIDC数据集肺区分割
来源:互联网 发布:windows 10界面 编辑:程序博客网 时间:2024/03/28 17:34
在使用LIDC数据集做肺结节检测时对肺区进行分割后效果会好很多,主要是减少肺区以外的组织对检测的干扰。
方法比较简单:
首先是阈值分割,设置CT值为480HU作为阈值对CT图像进行分割,得到二值图像,然后使用flood fill填充方法对肺区以外的部分进行填充,接下来使用形态学方法腐蚀掉肺区中的残余部分,最终将得到的结果作为掩模与原图像叠加得到肺区图像。
MATLAB代码:def img_segmentation(dicom_file): threshold = -480 / dicom_file.RescaleSlope - dicom_file.RescaleIntercept mask=dicom_file.pixel_array mask=(mask>threshold).astype(np.float32) element = cv2.getStructuringElement(cv2.MORPH_ELLIPSE, (10, 10)) mask = cv2.erode(mask, element) cols,rows=mask.shape[:2] #cv2.imshow('mask', mask) #cv2.waitKey() mask_back=mask.copy() flood_mask=np.zeros([cols+2,rows+2],dtype=np.uint8) cv2.floodFill(mask,flood_mask,(0,0),255) element = cv2.getStructuringElement(cv2.MORPH_ELLIPSE, (4, 4)) mask = cv2.dilate(mask, element) #cv2.imshow('mask', mask) #cv2.waitKey() #mask=(mask.astype(np.uint8))*255 #mask=255-mask #return mask #seg=mask*(dicom_file.pixel_array) mask=1.0-mask/255 mask=mask-mask_back mask=mask*(mask>0) #mask=(mask.astype(np.uint8))* print mask.max(), mask.min() flood_mask = np.zeros([cols + 2, rows + 2], dtype=np.uint8) cv2.floodFill(mask, flood_mask, (0, 0), 255) print mask.max(), mask.min() mask=mask.astype(np.uint8) mask=(mask<128).astype(np.float32) #cv2.imshow('mask',mask) #cv2.waitKey() return mask
0 0
- LIDC数据集肺区分割
- LIDC-IDRI肺结节数据集xml解释及读取
- LIDC-IDRI肺结节公开数据集Dicom和XML标注详解
- LIDC-IDRI肺结节公开数据集Dicom和XML标注详解
- 查询数据区分大小写
- 区分代码与数据
- 三月份数据割接心得
- poj 1815(最小割、割集)
- 计算机区分指令和数据?
- 指令与数据的区分
- 如何区分数据和指令
- hiho1378 最小割集
- 用户收藏数据割接脚本
- 在单文档界面中,怎样将视类区分割为两部分?
- 区分
- 区分
- 区分
- 区分
- C++第1次实验(提高班)项目四:模拟ATM
- 导航 Navigator and NavigatorIOS的使用==》传递参数
- dubbo 自定义标签
- hadoop集群两个namenode无法正常启动
- 使用jquery.qrcode生成二维码及常见问题解决方案
- LIDC数据集肺区分割
- C语言学习------3.1 结构体和共用体
- Express实现Session+Cookie认证
- 语音增强原理之增益因子
- Oracle Database Vault关闭方法(二)
- [b.d]--算法题-求含有min函数的栈的实现
- 【Android】- Android Studio打包签名的流程
- canvas系类-非零坏绕原则(二)制作剪纸效果
- 应用程序的内存的分类