当前位置: 首页 > ops >正文

CT影像寻找皮肤轮廓预处理

注意此方法处理的是CT影像。

问题是:原来对于CT影像寻找轮廓之前的预处理不合适,导致轮廓向体内偏移严重:

其实原因就是分割阈值过大。

主要处理步骤如下:

img = all_ds[i].pixel_array# 归一化norm = cv2.normalize(img, None, 0, 255, cv2.NORM_MINMAX).astype(np.uint8)​# 开运算kernel = cv2.getStructuringElement(cv2.MORPH_RECT, (7, 7))opening = cv2.morphologyEx(img, cv2.MORPH_OPEN, kernel)​# 使用Otsu阈值分割 ret, binary = cv2.threshold(opening, 0, 255, cv2.THRESH_BINARY + cv2.THRESH_OTSU)_, final = cv2.threshold(opening, ret, 255, cv2.THRESH_BINARY)​contours, _ = cv2.findContours(final, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_NONE)# 提取最大轮廓,这是我们要的最大外围轮廓ctr = max(contours, key=cv2.contourArea).squeeze()

根据手头上几个CT影像的测试结果,自认为经过上面的处理得到的结果是较好的。

此前,在otsu阈值分割之前采用的是闭运算而不是开运算,实验结果是采用闭运算轮廓会出现“不规则锯齿”问题。而开运算则避免了这个问题。我认为,闭运算先膨胀再腐蚀,填补内部小空洞,对物体边缘的作用是更“模糊化”,即使得前景和背景过度更平滑,区别更不明显;而开运算先腐蚀再膨胀,去除噪声小白点,对物体边缘的作用是更“清晰化”,即使得前景和背景区分的更明显。

同时,在otsu之前一般会有高斯模糊处理,最初我也这个操作。但是,在这个任务中我们目的是更清晰的找出身体的最外围轮廓,让前景、背景区别更明显,模糊化不利于这个效果,所以去掉,实验结果显示去掉后效果也会变好。

缺点:

采用开运算之后偶尔几张影像会出现“内凹”现象,推测原因是开运算腐蚀过于严重,但总体来看,采用开运算利大于弊。

http://www.xdnf.cn/news/19982.html

相关文章:

  • 一天一个强大的黑科技网站第1期~一键抠图神器!设计师必备!分分钟扣100张图!
  • 基于STM32设计的激光充电控制系统(华为云IOT)_277
  • Flutter的三棵树
  • 【STM32外设】DAC
  • Big Data Analysis
  • 某头部能源集团“数据治理”到“数智应用”跃迁案例剖析
  • Ubuntu中使用nginx-rtmp-module实现视频点播
  • mac 安装 nginx
  • Day36 TCP客户端编程 HTTP协议解析 获取实时天气信息
  • 如何选择适合的实验室铸铁地板和铸铁试验平板?专业人士帮助指南
  • 【开题答辩全过程】以 基于Android的点餐系统为例,包含答辩的问题和答案
  • 《sklearn机器学习——多标签排序指标》
  • Conda 使用py环境隔离
  • 新后端漏洞(上)- H2 Database Console 未授权访问
  • 高级RAG策略学习(四)——上下文窗口增强检索RAG
  • 耐达讯自动化RS485与Profinet双向奔赴,伺服驱动器连接“稳稳拿捏”
  • 第24节:3D音频与空间音效实现
  • 如何使用宝塔API批量操作Windows目录文件:从获取文件列表到删除文件的完整示例
  • 【第三方网站测试:WEB安全测试中HTTP响应头安全配置的检测的几个要点】
  • 【Web安全】命令注入与代码注入漏洞解析及安全测试指南
  • 极致效率:用 Copilot 加速你的 Android 开发
  • Linux内核网络安全序列号生成机制解析
  • 复合机器人能否更换末端执行器?
  • threejs入门学习日记
  • 分布式微服务--ZooKeeper作为分布式锁
  • Spring如何解决循环依赖:深入理解三级缓存机制
  • Android13 系统源码核心目录解析
  • css margin外边距重叠/塌陷问题
  • AI时代企业获取精准流量与实现增长的GEO新引擎
  • Android14实现Settings左右分屏显示的 代码修改