ITK-Snap 处理医疗影像

news/2024/7/21 3:57:23 标签: 计算机视觉, 图像处理, 人工智能

文章目录

  • 0 引言
  • 1. ITK-Snap基本功能
    • 1.1 ITK-Snap视图介绍
    • 1.2 File菜单
    • 1.3 Edit编辑菜单
    • 1.3 Segmentation 图像标注
    • 1.4 Workspace
  • 2. Tool 工具的使用
    • 2.1 Lager Inspect 查看图像的信息
    • 2.2 Active Main Tool
  • 3 人工分割
    • 3. 1 多边形分割
  • 4 半自动分割的步骤
  • 参考

0 引言

由于最近接触了医疗影像的相关领域,特此学习了医疗影像相关的知识,与传统的图像处理领域有许多的不同,医学图像数据采用DICOM格式
DICOM:(Digital Imaging and Communications in Medicine)即医学数字成像和通信,DICOM被广泛应用于放射医疗,心血管成像以及放射诊疗诊断设备(X射线,CT,核磁共振,超声等),并且在眼科和牙科等其它医学领域得到越来越深入广泛的应用,DICOM是部署最为广泛的医疗信息标准之一。参考自百度百科https://baike.baidu.com/item/DICOM/2171358?fr=aladdin

对于处理DICOM的软件有众多,本文章采用ITK-Snap来进行介绍。ITK-Snap的主要功能是对医学图像进行分割,包括2D与3D的分割,包括人工分割与半自动分割。本文主要介绍ITK-Snap的基本使用,包括基本功能的介绍,医学图像的查看以及医学图像的标注

1. ITK-Snap基本功能

1.1 ITK-Snap视图介绍

在刚开始使用软件的时候,可能上来就被该软件的视图搞蒙了,类似于咱们数学上的三视图,但是他是从CT扫描的视角观察的

在这里插入图片描述

三个切片窗口分别为:

  1. 轴向面(Axial)
  2. 矢状面(Sagittal)
  3. 冠状面(Coronal)
  • 常用的有轴向面与冠状面,可以帮助我们进行空间上的定位与标注
    在这里插入图片描述

  • 显示一个主图

在这里插入图片描述

  • 对当前进行截图

在这里插入图片描述

  • 使用大小

在这里插入图片描述

1.2 File菜单

在这里插入图片描述

  • 常用的打开功能,这里不多介绍,会使用基本的软件路径打开即可
  • 重点介绍ITK-Snap特有的功能
  1. Add Another Image 可以进行不同DICOM文件的融合,比如不同段的CT扫描图像
  2. save Image -> main Image 可以对文件进行另存
  3. export 导出文件:
    在这里插入图片描述
  • Image Slice 单对切面的导出,导出的格式为png, 不包含标注的图像
  • Screenshot / Screenshot Series 将图片导出为截图的格式,包含了图片的标注信息。与导出切片不同,导出的截图与图像在软件中的显示是一样的,常用于一些图像的说明

1.3 Edit编辑菜单

在这里插入图片描述

  1. Undo 撤销, Redo 重做
  2. Foreground Label Background Label 是不同标注之间的关系

在这里插入图片描述

Clear Label为前景,Label1 为背景可以对红色进行删除,即清除标签
Paint over 为背景,All Label 允许前景可以在任意位置标注,All visible Label允许对可见标签进行标注,Clear Label, 只允许前景对空白无标签区域进行标注

  1. Zoom 对区域进行缩放
  2. Layer 处理添加的不同的层,比如:CT扫描的不同段
  3. Slice Annotations -> Toggle.... 可以去掉视图的标注信息,Slice Annotations -> Annotation Preference 可以对标注的格式进行设置
    在这里插入图片描述

1.3 Segmentation 图像标注

在这里插入图片描述

  1. Open Segmentation 打开标注的文件,标注的文件为.nii格式,可以直接进行拖拽的方式来获取标注
  2. Save Another Segmentation 保存标注的图像,格式为nii, 保存的标注格式,可以直接拖拽到原始图像中
  3. Unload Segmentation 可以将加载的标注去掉
  4. Export as Surface Mesh 将标签保存为vtk文件
  5. Label Editor 对Label的相关属性进行编辑

在这里插入图片描述

  1. Volumes and Statistics 获取空间的统计数据

在这里插入图片描述

  1. Appearence 对标签进行处理,Appearence -> ToggleVisibility 隐藏所有的标签,再次选择则会返回;Increase / Decrease Opacity 增加/减少透明度,可以使得标签更明显
    在这里插入图片描述

1.4 Workspace

  • 主要用于保存工作空间,有时候工作没有进行完,使用保存的工作空间继续进行以前的工作
  • 保存的文件格式为:.itksnap

2. Tool 工具的使用

在这里插入图片描述

2.1 Lager Inspect 查看图像的信息

  • 包括主图信息与标注信息
    在这里插入图片描述
  1. Contrast可用于调整窗宽窗位,主要是图像的对比度
  2. Color Map 可用于调节显示的颜色,比如调节为伪彩,便于观察, 但常用的还是灰度图

sda

  1. infometadata展示图像的基本信息

2.2 Active Main Tool

  • 主要的标注工具
    在这里插入图片描述
  1. Crosshiar Tool 即图像中的十字虚线定位点
  2. Zoom/Pan Mode 用来缩放图像
  3. Polygon Drawing Mode 多边形勾选区域,可以设定选定的模式,1)使用Smooth curve 2) 使用Polygon 多边形
  4. PaintBrush Mode 用来涂画标注的区域
  5. Active Contour Segmentation Mode 半自动进行区域的标注
  6. Annotation Tool 可以标注图像上两点之间的距离,

3 人工分割

3. 1 多边形分割

  • 选择的曲线为Smooth curve

在这里插入图片描述

  1. 使用多边形工具勾画以后,使用accept获取分割的区域
    在这里插入图片描述

使用

  • 使用paste last ploygon 应用最后的轮廓

在这里插入图片描述

  1. 使用画笔工具进行涂画,选择不同的大小进行边界以及内容的填充,选择边界自适应填充可以根据不同的CT值,来填充不同的区域

在这里插入图片描述

  • 自适应画笔的效果

在这里插入图片描述

  • 最终的效果
    在这里插入图片描述

4 半自动分割的步骤

**半自动分割的基本过程: **

  1. 使用矩形框进行框选,并在多个视图中确定区域
    在这里插入图片描述
    在这里插入图片描述

  2. 在左侧进行3D分割

在这里插入图片描述

  1. 看第二个视图, 蓝色为丢弃区域,白色为选择的区域,进行CT阈值的调节,来选择想要的部分。参数调整完毕后,选择next进行下一步操作

在这里插入图片描述

  1. 在要扩散的区域选择点,进行自动扩散

在这里插入图片描述

  • 观察到区域在不断的扩散

在这里插入图片描述

  1. 3D的结果

在这里插入图片描述


参考

  1. https://www.bilibili.com/video/BV1dK411F7jW
  2. https://www.bilibili.com/video/BV15B4y1A7ER/
  3. https://www.bilibili.com/video/BV1rL4y1p7gW
  4. https://www.bilibili.com/video/BV1634y1X7Nb

http://www.niftyadmin.cn/n/1261171.html

相关文章

python制作图片数据集_将自己的数据集制作成TFRecord格式教程

在使用TensorFlow训练神经网络时,首先面临的问题是:网络的输入此篇文章,教大家将自己的数据集制作成TFRecord格式,feed进网络,除了TFRecord格式,TensorFlow也支持其他格式的数据,此处就不再介绍…

DICOM学习 - 医学图像的质量

文章目录0 引言1 Contrast - 对比度问题1.1 Subject Contrast1.2 Detector Contrast1.3 Display Contrast2 Spatial Resolution3 Noise参考文献0 引言 在医学图像中,图像往往是灰度图,拿CT图像来说,其采样的范围很大,通过设置不同…

knockoutjs简单使用

knockoutjs是一个不错的前端MVVM框架&#xff0c;极大的减轻了前端工作开发量&#xff0c;增加前端代码的维护性。主要特点&#xff1a;声明式绑定、依赖跟踪、模块开速开发。 如下代码&#xff08;官方代码稍做修改&#xff09; <p> 姓氏: <strong data-bind"te…

oracle sql 子游标_Oracle动态SQL与游标详解

动态 SQL动态 SQL是指在PL/SQL程序执行时生成的 SQL 语句编译程序对动态 SQL 不做处理&#xff0c;而是在程序运行时动态构造语句、对语句进行语法分析并执行DDL 语句命令和会话控制语句不能在 PL/SQL 中直接使用&#xff0c;但是可以通过动态 SQL 来执行执行动态 SQL 的语法&a…

Input type (torch.FloatTensor) and weight type (torch.cuda.FloatTensor) should be the same

1. 原因 输入的矩阵的数据类型与神经网络权重的数据类型不一致 解决办法 将输入的数据与神经网络放到同一个设备上 device torch.device("cuda:0")# -------x, y x.to(device), y.to(device)# --------model.to(device)

python多个dataframe 写入同一个sheet页_如何将多个dataframe写入一个excel表

当工作中&#xff0c;会遇到下面的问题&#xff1a;最后的结果是多个dataframe结果需要放在不同的excel中而你现在只会将单个dataframe写入单个csv那么&#xff0c;你需要一个优雅的完成方式&#xff0c;一次将多个dataframe写入一个excel&#xff0c;不要多次写入csv&#xff…

JavaEE环境配置 - 配置JDK1.8:配置环境变量

文章目录配置java JDK1.8环境1.下载安装JDK1.82. 本人提供网盘下载2. JDK1.8 配置环境变量参考文章配置java JDK1.8环境 1.下载安装JDK1.8 官方地址&#xff1a; https://www.oracle.com/java/technologies/downloads/ 2. 本人提供网盘下载 https://pan.baidu.com/s/117kd…

JavaEE环境配置 - 配置Tomcat:eclipse集成Tomcat

文章目录eclipse配置Tomcat1. 解决eclipse下载慢的问题1.2 解压eclipse的zip就可以直接使用2 配置tomcat2.1 下载tomcat2.2 Tomcat安装3. Eclipse中配置Tomcat解决Tomcat服务器不能开启的问题参考文章eclipse配置Tomcat 1. 解决eclipse下载慢的问题 下载地址: https://www.e…