官网网站:https://pyradiomics.readthedocs.io/en/latest/index.html
转载网站:https://cloud.tencent.com/developer/article/1660808
https://cloud.tencent.com/developer/article/1662581

(一)理论篇

医学影像组学特征值(Radiomics Features)
[安装]:python -m pip install pyradiomics

Use 3D Slicer Radiomics extension使用3D Slicer Radiomics扩展
3D Slicer是用于医学影像计算的免费开源平台(http : //slicer.org),可以使用3D Slicer ExtensionManager来安装Radiomics扩展程序,该扩展程序提供了一个针对pyradiomics库的图形用户界面。使用3D Slicer中的pydiadomics的优势在于,您可以查看图像和分割,参考链接https://github.com/Radiomics/SlicerRadiomics。

Pyradiomics影像组学特征提取过4种方式自定义特征提取:
1)指定用于提取特征的图像类型(原始图像或者基于变换的派生图像)
2)指定要提取的特征类
3)指定一个设置文件来控制预处理、图像变换的滤波器和特征类
4)指定voxel-based基于体素的特定设置,只有在使用PyRadiomics 进行体素提取生成特征图时才需要。

1、图像类型
进行影像组学特征提取的图像既可以是原始图像,也可以是经过滤波器处理的派生图像。默认情况下只使用原始图像,允许的图像类型存储在特征提取类实例_enabledImageTypes字典中,并且可以通过enableAllImageTypes(),disableAllImageTypes(),enableImageTypeByName()和 enableImageTypes()函数进行修改。
目前可用的图像类型如下:
原始图像:
1)Original:原始图像
派生图像:
2)Wavelet:小波滤波
3)LoG:高斯滤波器的拉普拉斯算子,是一种边缘增强滤波器,强调的是灰度变化的区域,sigma参数定义要强调的纹理粗糙度,该值较低则强调较细的纹理,该值较高则强调较粗糙的纹理。
4)Square:平方,即获取图像强度值的平方
5)SquareRoot:平方根,即获取图像强度值的平方根
6)Logarithm:对数,获取图像绝对强度+1的对数
7)Exponential:指数,获取图像强度值的指数
8)Gradient:梯度,获取图像局部梯度的大小
9)LocalBinaryPattern2D:本地二进制模型(2D)
10)LocalBinaryPattern3D:本地二进制模型(3D)

2、允许的特征类
从每个图像类型中进行特征提取的特征类型,允许的特征类被存储在特征提取类实例_enabledFeatures字典中,并且可以通过enableAllFeatures(), disableAllFeatures(), enableFeatureClassByName()和 enableFeaturesByName()函数进行修改。字典中的每个键值对代表一个启用的特征类,其中特征类名称为键,而启用的特征名称列表为值。如果值为None或空列表,则启用该特征类中的所有特征。否则,仅指定某些特征则启用该特征,默认情况下所有的特征类和特征都被启动。
目前可用的特征类如下:
1)First Order Statistics(19features)一阶统计量
通过常用的和基本的度量来描述由mask定义的图像区域内的体素强度分布。
GetEnergyFeatureValue():能量,是图像中体素值大小的度量,值越大意味着这些值的平方和越大。
GetTotalEnergyFeatureValue():总能量,是以体素的体积(以立方毫米为单位)为尺度的能量特征值。
GetEntropyFeatureValue():熵,定义图像值的不确定性或者随机性,是对图像值进行编码所需平均信息量对度量。
GetMinimunFeatureValue():最小特征值
Get10PercentileFeatureValue():第10%的特征值。
Get90PercentileFeatureValue():第90%的特征值
GetMaximunFeatureValue():最大特征值
GetMeanFeatureValue():平均特征值
GetMedianFeatureValue():中位数特征值
GetInterquartileRangeFeatureValue():四分位范围
GetRangeFeatureValue():强度值范围(最大值-最小值)
getMeanAbsoluteDeviationFeatureValue():平均绝对偏差
getRobustMeanAbsoluteDeviationFeatureValue():鲁棒平均绝对偏差
getRootMeanSquaredFeatureValue():均方根
getStandardDeviationFeatureValue():标准偏差,衡量与平均值之间的差异或离散程度
getSkewnessFeatureValue():偏度,偏度测量关于平均值的值分布的不对称性。根据尾巴在哪里加长和分布的质量集中在什么地方,该值可以为正或负。
GetKurtosisFeatureValue():峰度,峰度是图像ROI中值分布的“峰值”度量。峰度越高,意味着分布的质量集中于尾部而不是均值。较低的峰度意味着相反的情况:分布的质量集中在接近均值的峰值处。
GetVarianceFeatureValue():方差,是每个强度值与平均值之间的平方距离的平均值。这是对均值分布分布的度量
getUniformityFeatureValue():均匀度,是每个强度值的平方和的量度。这是图像阵列均匀性的一种度量,其中更大的均匀性意味着更大的均匀性或较小的离散强度值范围。

2)Shape-based(3D)(16fetures)基于3D形状
getMeshSurfaceFeatureValue():网格表面,由三角形网格定义,计算ROI的表面。
getPixelSurfaceFeatureValue():像素表面,由像素数量乘以每个像素的面积得到。
getPerimeterFeatureValue():周长。
getPerimeterSurfaceRatioFeatureValue():周长比,较低的值表示更紧凑的圆形。
getSphericityFeatureValue():球形度,表示与肿瘤区域具有相同面积的圆形的周长与肿瘤的周长之比。
getSphericalDisproportionFeatureValue():球形不均匀度,是球形度的倒数。
getMaximumDiameterFeatureValue():最大2D直径。
getMajorAxisLengthFeatureValue():主轴长度。
getMinorAxisLengthFeatureValue():短轴长度。
getElongationFeatureValue():伸长率。

3)Shape-based(2D)(10features)基于2D形状
getMeshVolumeFeatureValue():网格体积,由影像RIO的三角形网格计算得到。
getVoxelVolumeFeatureValue():体素体积,由体素的个数乘以一个体素的体积得到。
GetSurfaceAreaFeatureValue():表面积。
getSurfaceVolumeRatioFeatureValue():表面积与体积之比,较低的值表示更紧凑的球形形状。
getSphericityFeatureValue():球形度,是肿瘤区域相对于球形度圆度度度量。
getCompactness1FeatureValue():紧凑度1,是衡量肿瘤形状相对于球形的紧密程度的度量。
getCompactness2FeatureValue():紧凑度2,也是衡量肿瘤形状相对于球体的紧密程度的度量,公式不同。
getSphericalDisproportionFeatureValue():球形不对称,是肿瘤区域的表面积与具有相同体积的球体表面积的比值,是球形度的倒数。
getMaximum3DDiameterFeatureValue():最大3D直径,表示肿瘤表面网格顶点之间的最大欧几里得距离。
getMaximum2DDiameterSliceFeatureValue():最大2D直径(切片),表示轴向平面中肿瘤表面网格顶点之间最大的欧几里得距离。
getMaximum2DDiameterColumnFeatureValue():最大2D直径(列),表示冠状平面中肿瘤表面网格顶点之间最大的欧几里得距离。
getMaximum2DDiameterRowFeatureValue():最大2D直径(行),表示失状平面中肿瘤表面网格顶点之间最大的欧几里得距离。
getMajorAxisLengthFeatureValue():主轴长,表示包围ROI的椭球的最大轴长。
getMinorAxisLengthFeatureValue():短轴长,表示包围ROI的椭球的第二轴长。
getLeastAxisLengthFeatureValue():最小轴长,表示包围ROI的椭球的最小轴长。
getElongationFeatureValue():伸长率,表示ROI形状中两个最大的主成分之间的关系。
getFlatnessFeatureValue():平面度,是表示ROI形状中最大和最小主成分之间的关系。

4)Glcm:Gray Level Cooccurence Matrix(24features)灰度共生矩阵
定义了一些关于相关性、能量、对比、逆差、方差、概率、熵、平方和等信息,具体不展开介绍了(主要是实在难以翻译),感兴趣可以去官网看公式(https://pyradiomics.readthedocs.io/en/latest/features.html#radiomics.glcm.RadiomicsGLCM)。
GetAutocorrelationFeatureValue():自相关,是纹理精细度和粗糙度的量度
getJointAverageFeatureValue():
getClusterProminenceFeatureValue
getClusterShadeFeatureValue
getClusterTendencyFeatureValue
getContrastFeatureValue
getCorrelationFeatureValue
getDifferenceAverageFeatureValue
getDifferenceEntropyFeatureValue
getDifferenceVarianceFeatureValue
getDissimilarityFeatureValue
getJointEnergyFeatureValue
getJointEntropyFeatureValue
getHomogeneity1FeatureValue
getHomogeneity2FeatureValue
getImc1FeatureValue
getImc2FeatureValue
getIdmFeatureValue
getMCCFeatureValue
getIdmnFeatureValue
getIdFeatureValue
getIdnFeatureValue
getInverseVarianceFeatureValue
getMaximumProbabilityFeatureValue
getSumAverageFeatureValue
getSumVarianceFeatureValue
getSumEntropyFeatureValue
getSumSquaresFeatureValue

5)Glrlm:Gray Level Run Length Matrix(16features),灰度级运行长度矩阵
getShortRunEmphasisFeatureValue
getLongRunEmphasisFeatureValue
getGrayLevelNonUniformityFeatureValue
getGrayLevelNonUniformityNormalizedFeatureValue
getRunLengthNonUniformityFeatureValue
getRunLengthNonUniformityNormalizedFeatureValue
getRunPercentageFeatureValue
getGrayLevelVarianceFeatureValue
getRunVarianceFeatureValue
getRunEntropyFeatureValue
getLowGrayLevelRunEmphasisFeatureValue
getHighGrayLevelRunEmphasisFeatureValue
getShortRunLowGrayLevelEmphasisFeatureValue
getShortRunHighGrayLevelEmphasisFeatureValue
getLongRunLowGrayLevelEmphasisFeatureValue
getLongRunHighGrayLevelEmphasisFeatureValue

6)Glszm:Gray Level Size Zone Matrix(16features)
getSmallAreaEmphasisFeatureValue
getLargeAreaEmphasisFeatureValue
getGrayLevelNonUniformityFeatureValue
getGrayLevelNonUniformityNormalizedFeatureValue
getSizeZoneNonUniformityFeatureValue
getSizeZoneNonUniformityNormalizedFeatureValue
getZonePercentageFeatureValue
getGrayLevelVarianceFeatureValue
getZoneVarianceFeatureValue
getZoneEntropyFeatureValue
getLowGrayLevelZoneEmphasisFeatureValue
getHighGrayLevelZoneEmphasisFeatureValue
getSmallAreaLowGrayLevelEmphasisFeatureValue
getSmallAreaHighGrayLevelEmphasisFeatureValue
getLargeAreaLowGrayLevelEmphasisFeatureValue
getLargeAreaHighGrayLevelEmphasisFeatureValue

7)Gldm:Gray Level Dependence Matrix(14features)灰度依赖性矩阵
getSmallDependenceEmphasisFeatureValue
getLargeDependenceEmphasisFeatureValue
getGrayLevelNonUniformityFeatureValue
getGrayLevelNonUniformityNormalizedFeatureValue
getDependenceNonUniformityFeatureValue
getDependenceNonUniformityNormalizedFeatureValue
getGrayLevelVarianceFeatureValue
getDependenceVarianceFeatureValue
getDependenceEntropyFeatureValue
getDependencePercentageFeatureValue
getLowGrayLevelEmphasisFeatureValue
getHighGrayLevelEmphasisFeatureValue
getSmallDependenceLowGrayLevelEmphasisFeatureValue
getSmallDependenceHighGrayLevelEmphasisFeatureValue
getLargeDependenceLowGrayLevelEmphasisFeatureValue
getLargeDependenceHighGrayLevelEmphasisFeatureValue

8)Ngtdm:Neighbouring Gray Tone Difference Matrix(5features)
getCoarsenessFeatureValue
getContrastFeatureValue
getBusynessFeatureValue
getComplexityFeatureValue
getStrengthFeatureValue

除了形状特征类外,其他特征都可以在原始图像和派生图像上进行计算,注意上面的特征不是都需要的,有一些特征具有相关性。
3、特征提取设置
1)Image Normalization图像归一化
Normalize:当设置为True时,对图像进行归一化处理
normalizeScale:对图像进行归一化处理的比例
RemoveOutliers:从图像中删除的离群值
2)Resampling the image图像重采样
ResamplePixelSpacing:设置重采样时的体素大小。
Interpolator:设置重采样的差值方法,可选的值如下:
sitkNearestNeighbor(= 1)
sitkLinear(= 2)
sitkBSpline(= 3)
sitkGaussian(= 4)
sitkLabelGaussian(= 5)
sitkHammingWindowedSinc(= 6)
sitkCosineWindowedSinc(= 7)
sitkWelchWindowedSinc(= 8)
sitkLanczosWindowedSinc(= 9)
sitkBlackmanWindowedSinc(= 10)
padDistance:设置在裁剪肿瘤体时的体素补充数量。

(二)使用篇​

使用方法
首先导入必要的包

import SimpleITK as sitk
import radiomics
from radiomics import featureextractor

导入输入的CT数据

imageName, maskName = path_to_img, path_to_mask
print('imageName, maskName', imageName, maskName)
if imageName is None or maskName is None:  # Something went wrong, in this case PyRadiomics will also log an errorprint('Error getting testcase!')exit()

一些设置文件

# Define settings for signature calculation
# These are currently set equal to the respective default values
settings = {}
settings['binWidth'] = 25
settings['resampledPixelSpacing'] = None  # [3,3,3] is an example for defining resampling (voxels with size 3x3x3mm)
settings['interpolator'] = sitk.sitkBSpline

初始化feature extractor

#Initialize feature extractor
extractor = featureextractor.RadiomicsFeatureExtractor(**settings)

设置图像类型,如原始图像,LoG、Wavelet等派生图像,默认情况下只使用原始图像

#By default, only original is enabled. Optionally enable some image types:
#extractor.enableImageTypes(Original={}, LoG={}, Wavelet={})

设置特征类型,首先屏蔽所有类型

#Disable all classes
extractor.disableAllFeatures()

输出Pyradiomics包的信息和图像的基本信息

print("Calculating features")
featureVector = extractor.execute(imageName, maskName)
for featureName in featureVector.keys():print("Computed %s: %s" % (featureName, featureVector[featureName]))


从输出可以看到Pyradiomics包的依赖环境Numpy、SimpleITK、PyWavelet、Python等版本, Configuration_Settings设置文件,和图像的基本信息,如Dimension、Spacing、Size、Mean、Minimun、Maximun,图像Mask的基本信息,如Spacing、Size、BoundingBox等。

设置特征类型,选择firstorder类型

#Enable all features in firstorder
extractor.enableFeatureClassByName('firstorder')

设置firstorder特征的内部特征类型,选择mean和skewness,我们这里不设置,直接输出全部特征

#Only enable mean and skewness in firstorder
#extractor.enableFeaturesByName(firstorder=['Mean', 'Skewness'])

设置提取的特征类型后就可以输出影像组学特征了

PyRadiomics工具包使用说明相关推荐

  1. 新年第一文 | Lip synching detective(假唱侦探工具包)

    Lip synching detective 注意:工具包尚未完成,许多功能还未得到实现,希望大家积极地参与到项目中来! 文章目录 Lip synching detective 1.工具包简介 2. ...

  2. ArcMap叠置工具包——裁剪,相交,合并,融合,更新,交集取反等工具详细解释

    1. 叠加工具包简介 叠置工具包中有一些在空间信息分析中非常常用的工具,可以说这些工具的使用是贯穿每一个GIS的项目. 2.叠加工具包使用说明 2.1 交集(Intersect) arcmap操作中我 ...

  3. 【转】Tomcat+MyEclipse

    Tomcat+MyEclipse 单位:河南恩湃电力技术有限公司 部门:IT部-应用集成项目组 编写:刘志华 日期:2010-4-19 说明 本文中要讲述在程序开发过程中Tomcat和MyEclips ...

  4. svm_light和libsvm对比测试

    测试概述 svm_light和libsvm是实现支持向量机的不同工具包,这里在相同数据集(默认参数)下,测试两种工具的训练效果(主要对比训练时间). svm_light可在官网下载 http://ww ...

  5. APK编译、汉化及签名工具Dodo APKTool+APKSign Beta1.0使用方法

    一.工具包使用环境:XP.JDK环境 1,JDK:http://www.java.net/download/jdk6/6u10/promoted/b32/binaries/jdk-6u10-rc2-b ...

  6. socket调试工具、socket调试软件、tcp调试工具、tcp调试软件(sokit),C#sokit工具包及其sokit使用说明

    sokit真的非常好用,可做服务端,可做客户端 sokit是一款非常简单易用的tcp.udp调试工具,主要适用于专业的网络管理使用,它可以轻松查看网内的数据情况,能够有效地接收.发送.转发TCP或UD ...

  7. 精选 Github 近期13款开源工具包!(附数据集、链接)

    来源:PaperWeekly 本文共1700字,建议阅读6分钟. 本文为你精选近期Github上的13款深度学习开源工具包和数据集,一起Star和Fork吧- 01 #Swift for Tensor ...

  8. FCKeditor 在ASP.Net 中的使用说明

    FCKeditor 在ASP.Net 中的使用说明 FCKeditor 是一个运行在浏览器上的 JavaScript 应用程序.他可以不依赖任何服务器端语言运行.不过,更好的使用方法是你使用一种服务器 ...

  9. 本周 Github 精选:13 款炼丹利器,有开源工具包也有超大数据集

    在碎片化阅读充斥眼球的时代,越来越少的人会去关注每篇论文背后的探索和思考. 在这个栏目里,你会快速 get 每篇精选论文的亮点和痛点,时刻紧跟 AI 前沿成果. 点击本文底部的「阅读原文」即刻加入社区 ...

  10. slack 使用说明_我如何使用Node和Botkit构建HR Slack Bot

    slack 使用说明 为什么要创建Slack Bot? (Why create a Slack Bot ?) I am an HR professional. More specifically I ...

最新文章

  1. android开发之动画的详解 整理资料 Android开发程序小冰整理
  2. 这一篇让你真正理解Mysql的四种隔离级别
  3. plantuml样式_PlantUML 简明教程
  4. Sencha touch Panel之间的跳转(如不使用TabPanel或者Carousel控件而产生跳转的动画效果)...
  5. 11.17-20 | KubeCon 北美 2020 阿里巴巴完整议题
  6. mysql etc my.cnf_mysql配置文件 /etc/my.cnf 详细解释
  7. MQTT协议笔记之mqtt.io项目TCP协议支持
  8. VS Code + ML.NET 玩转交互式机器学习
  9. linux 基础训练题,Linux习题练习
  10. Kubeflow使用Kubernetes进行机器学习GPU分布式训练
  11. PHP设计模式——门面模式
  12. (89c51)16x16点阵屏幕的实现
  13. kettle数据脱敏
  14. 计算机楼综合布线设计图,现代综合大楼综合布线设计方案
  15. 在win7中chm打不开的方法
  16. 手机邮箱如何注册?邮箱格式如何填写?
  17. 单板电源设计(LDO、DC/DC)
  18. sql根据出生日期计算当前年龄 函数TIMESTAMPDIFF()
  19. 基于英飞凌TC397芯片Mcal配置之Can模块的配置
  20. 知无不言 容芳志:Objective-C地位下滑是必然

热门文章

  1. Serializable与serialVersionUID的作用
  2. powerDesign逆向工程Mysql转Oracle
  3. Portainer中文汉化
  4. ENVI 工具箱汉翻译汉化
  5. 综合项目之闪讯破解(一)之 闪讯拨号用户名核心算法
  6. 破解WEP无线网络WLAN全攻略
  7. 新人进群发邮件软件,QQ群潜伏发邮件软件,一进群就收到邮件软件
  8. Bug 引发的 18 次重大事故
  9. Dlink dwl-122 ver c1在windows 2003下的驱动安装
  10. java 解析umd文件_Webpack UMD:严重依赖...无法静态提取