IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> pyradiomics使用——1. 医学影像的组学特征值(Radiomics Features)提取 -> 正文阅读

[Python知识库]pyradiomics使用——1. 医学影像的组学特征值(Radiomics Features)提取

Github地址:https://github.com/AIM-Harvard/pyradiomics
官方文档地址:https://pyradiomics.readthedocs.io/en/latest/features.html

1. 使用插件

从pyradiomics的Github仓库中可以知道,pyradiomics也有一个3D Slicer的插件——SlicerRadiomics(插件安好了需要重启),考虑先用插件试一下。


1.1 插件安装

1.2 插件使用

先打开一个图,然后在Module这里选择Informatics->Radiomics

在这里插入图片描述


然后左侧就会弹出一些选项,

  1. 选好自己的图像volume和对应的mask部分
    在这里插入图片描述

  2. 直接选择要所有特征
    在这里插入图片描述
    这里的特征其实就对应于官网的内容,即:

    • firstorder → First Order Statistics (19 features)
    • glcm → Gray Level Cooccurence Matrix (24 features)
    • gldm → Gray Level Dependence Matrix (14 features)
    • glrlm → Gray Level Run Length Matrix (16 features)
    • glszm → Gray Level Size Zone Matrix (16 features)
    • ngtdm → Neighbouring Gray Tone Difference Matrix (5 features)
    • shape → Shape-based (3D) (16 features)
    • shape2D → Shape-based (2D) (10 features)
  3. output table中选择Create a new table,选完之后点击Apply
    在这里插入图片描述

  4. 然后一般可以在右下角看到Radiomics Features影像组学特征(我这里的示例使用的是DIOCM图,同时有5种mask,所以可以看到后面有5列mask) 在这里插入图片描述

类似的,也可以看看别的图的组学特征结果,但是每个字段的意义可能需要了解一下
在这里插入图片描述

2. 使用python代码

使用了3D Slicer的插件之后,大概了解这个东西是做什么的,接下来就用python来进行批量处理了。

2.1 安装

最基本的

python -m pip install pyradiomics

2.2 使用

2.2.1 官方示例

其实官方给了示例的,在官方文档的Example中可以知道, 示例代码位于pyradiomics的github中,链接

  • 示例数据在pyradiomics/data中,链接
  • jupyter文件位于pyradiomics/notebooks中,链接
  • 教程视频中所使用的参数文件位于pyradiomics/examples/exampleSettings中,链接
  • 如果没有安装jupyter,可以直接运行python代码:
    • 位于pyradiomics/examples链接
    • python helloRadiomics.py (segment-based extraction)
    • python helloVoxel.py (voxel-based extraction)

2.2.2 快速使用

主要就是命令行调用来生成相应的特征

1. 确认可以调用命令行

切换到你安装了pyradiomics的conda环境下,例如,base环境,
先用 -h 看一下能不能在命令行调用pyradiomics"

(base) C:\XXXX> pyradiomics -h                                                                                  
usage: pyradiomics image|batch [mask] [Options]                                                                                                                                                                                                 
optional arguments:                                                                                                       
-h, --help            show this help message and exit                                                                   
--label N, -l N       (DEPRECATED) Value of label in mask to use for                                                                          
feature extraction.                                                                               
--version             Print version and exit                                                                                                                                                                                                  
Input:                                                                                                                    
Input files and arguments defining the extraction:                                                                      
- image and mask files (single mode) or CSV-file specifying them (batch mode)                                           
- Parameter file (.yml/.yaml or .json)                                                                                  
- Overrides for customization type 3 ("settings")                                                                       
- Multi-threaded batch processing                             

2. 提取单个图像及对应mask的特征

pyradiomics <path/to/image> <path/to/segmentation>
"例如:"
pyradiomics "./data/Test-S1-101.nii.gz" "./label/Test-S1-101.nii.gz"

"默认结果输出到命令行中,如果想保存到文件里,可以"
pyradiomics <path/to/image> <path/to/segmentation> -o results.csv -f csv
"例如:"
pyradiomics "./data/Test-S1-101.nii.gz" "./label/Test-S1-101.nii.gz" -o results.csv -f csv
"然后就会在执行命令所在目录看到生成的那个文件了"

3. 提取批量

批量提取需要提前做一个.csv文件,第一行是表头,剩下的是数据,至少要包含:

  1. 第一列是image的图像路径
  2. 第二列是对应的mask的路径
  3. 对应第一列和第二列的表头必须是:ImageMask(大小写也不能错)

例如:

--All.csv--
Image,Mask
./data/Test-S1-101.nii.gz,./label/Test-S1-101.nii.gz
./data/Test-S1-102.nii.gz,./label/Test-S1-102.nii.gz
./data/Test-S1-103.nii.gz,./label/Test-S1-103.nii.gz
./data/Test-S1-104.nii.gz,./label/Test-S1-104.nii.gz
./data/Test-S1-201.nii.gz,./label/Test-S1-201.nii.gz
./data/Test-S1-202.nii.gz,./label/Test-S1-202.nii.gz
./data/Test-S1-203.nii.gz,./label/Test-S1-203.nii.gz
./data/Test-S1-204.nii.gz,./label/Test-S1-204.nii.gz

执行命令

pyradiomics <path/to/input> -o results.csv -f csv
"例如"
pyradiomics "./All.csv" -o results.csv -f csv

计算可能会比较慢,等会就行


2.2.3 其它使用

jupyter示例中展示了很多其它操作,可以看看

TBD


另外,

3. 组学特征字段意义说明

根据?影像组学 | 第五讲 影像组学特征提取

  • 一阶统计特征,反应所测体素的对称性、均匀性以及局部强度分布变化。包括中值,平均值,最小值,最大值,标准差,偏度,峰度等。
  • 形态特征,定量描述感兴趣区的几何特性,如肿瘤的表面积、体积、表面积和体积比、球形度、紧凑性和三维直径等,这些特征可以描述肿瘤三维的大小和形态信息。此外,还有原始图像或使用不同滤波方法对影像进行滤波后的
  • 二阶及高阶纹理特征,这些特征能够反映图像体素灰度之间的空间排列关系。

特征字段比较多,这里只研究自己关心的内容,主要是:

  1. mask部分对应的图像的强度值范围 → HU值(窗宽,窗位)
  2. mask部分形状在长度、宽度和深度三个轴上的最值(shape范围) → 预处理时的crop方式

其实官方文档写的还是比较清晰的,这里对上面自己关心部分的文档进行简单说明

3.1 HU值范围判定(归一化时的上界和下界)

在一阶特征中,可以知道
在这里插入图片描述
使用 X X X表示ROI区域(mask区域)的 N p N_p Np?个体素点

在这里插入图片描述
其中MinimumMaximum分别表示mask对应的ROI区域中最大的和最小的灰度强度值。


但是统计之后发现,

  • 这里的ROI区域的最大值和最小值,有些竟然是和全图的最大值或者最小值保持一致的。。
  • 所以如果想通过这种方式去确定HU值的范围,应该还需要看均值,不能单纯看最大值或者最小值
  • 另外,最好是查看每个图ROI区域的直方图,然后统计出所有图的最高频率的ROI直方图的范围,来作为最后的上界和下界。
  • 暂时还不知道怎么操作,TBD

参考:


其它可能有参考价值的内容:

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-06-06 17:18:20  更:2022-06-06 17:18:51 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/18 15:02:19-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码