影像组学 - pyradiomics库 - 入门1

目录

一、了解 影像组学

影像组学是什么(引用一下chatgpt的解释)

影像组学的基本步骤

影像组学的作用与价值

影像组学有哪些特征

二、了解 pyradiomics

pyradiomics是什么

pyradiomics使用步骤

pyradiomics的作用与价值

三、正文开始,敲代码

准备python环境与数据

安装库

初始化特征抽取器

取出图片数据路径

提取特征

输出特征

指定所要提取的特征


一、了解 影像组学

影像组学是什么(引用一下chatgpt的解释)

影像组学(Radiomics)是一种利用医学影像数据中的大量特征进行定量分析和挖掘的方法。它的目标是通过提取和分析医学影像中的大量图像特征,以揭示潜在的生物学特征、疾病信息和治疗预测。

影像组学的基本步骤

  1. 数据获取:收集医学影像数据,如CT扫描、MRI、PET等。

  2. 图像分割:对影像进行分割,将感兴趣的区域(如肿瘤)从周围的组织中分离出来。

  3. 特征提取:从分割后的影像中提取大量的数学、几何和统计特征,包括形状、纹理、灰度等。这些特征可以反映组织的形态、结构和组织特性。

  4. 特征选择:根据特征的相关性、重要性和预测能力等进行筛选和选择最具有代表性的特征。

  5. 建模和分析:利用选定的特征进行建模和分析,可以使用机器学习、统计学方法等来构建预测模型,发现生物学模式、进行疾病诊断、预后评估等。

影像组学的作用与价值

通过影像组学的分析,可以从医学影像中挖掘潜在的生物学特征、疾病的影像标志物,并且可以为个体化治疗和疾病管理提供更多信息。影像组学在肿瘤学、神经科学、心血管疾病等领域得到广泛应用,对疾病的早期检测、分型、预后评估和治疗决策等方面具有潜在的价值。

影像组学有哪些特征

特征类别特征名称(解释)
First Order FeaturesEnergy(能量)
Total Energy(总能量)
Entropy(熵)
Minimum(最小值)
10th percentile(第十百分位)
90th percentile(第九十百分位)
Maximum(最大值)
Mean(均值)
Median(中值)
Interquartile Range(四分位范围)
Range(极差)
Mean Absolute Deviation (MAD)(平均绝对偏差)
Robust Mean Absolute Deviation(rMAD,鲁棒平均绝对偏差)
Root Mean Squared(RMS,均方根)
Skewness(偏度)
Kurtosis(峰度)
Variance(方差)
Uniformity(均匀性)
Shape Features (2D)MeshSurface(网格面)
PixelSurface(像素面)
Perimeter(周长)
PerimeterSurfaceRatio(周长比)
Sphericity(球形度)
SphericalDisproportion(球形不均匀度)
MaximumDiameter(最大二维直径)
MajorAxisLength(长轴长度)
MinorAxisLength(短轴长度)
Elongation(伸长率)
Shape Features (3D)MeshVolume(网格体积)
VoxelVolume(体素体积)
SurfaceArea(表面积)
SurfaceVolumeRatio(表面积体积比)
Sphericity(球形度)
Compactness1(紧凑度1)
Compactness2(紧凑度2)
SphericalDisproportion(球形不对称)
Maximum3DDiameter(最大3D直径)
Maximum2DDiameterSlice(最大二维直径(切片))
Maximum2DDiameterColumn(最大2D直径(列))
Maximum2DDiameterRow(最大二维直径(行))
MajorAxisLength(长轴长度)
MinorAxisLength(短轴长度)
LeastAxisLength(最小轴长度)
Elongation(伸长率)
Flatness(平整度)
Gray Level Co-occurrence Matrix (GLCM) Features灰度共生矩阵特征Autocorrelation(自相关)
Joint Average(联合平均)
Cluster Prominence(集群突出)
Cluster Shade(集群阴影)
Cluster Tendency(集群趋势)
Contrast(对比度)
Correlation(相关性)
Difference Average(差平均)
Difference Entropy(差熵)
Difference Variance(差方差)
Joint Energy(联合能量)
Joint Entropy(联合熵)
Informational Measure of Correlation 1(IMC 1,相关信息测度1)
Informational Measure of Correlation 2(IMC 2,相关信息测度2)
Inverse Difference Moment(IDM,逆差矩)
Maximal Correlation Coefficient(MCC,最大相关系数)
Inverse Difference Moment Normalized(IDMN,归一化逆差矩)
Inverse Difference(ID,逆差)
Inverse Difference Normalized(IDN,归一化逆差)
Inverse Variance(逆方差)
Maximum Probability(最大概率)
Sum Average(和平均)
Sum Entropy(和熵)
Sum of Squares(和方差)
GLSZMGray Level Size Zone Matrix Features灰度级大小区域矩阵特征
GLRLMGray Level Run Length Matrix Features灰度游程矩阵特征
NGTDMNeighbouring Gray Tone Difference Matrix Features相邻灰度差矩阵
GLDMGray Level Dependence Matrix Features 灰度依赖矩阵特征

后面四个懒得写了,可以在这里查看  影像组学特征大全

二、了解 pyradiomics

pyradiomics是什么

pyradiomics是一个开源的python软件包,可以从医学影像中提取出Radiomics影像组学特征,其支持2D和3D中的特征提取

pyradiomics使用步骤

  1. 数据准备:准备医学影像数据,可以是CT扫描、MRI、PET等。

  2. 安装PyRadiomics:在Python环境中安装PyRadiomics库,可以使用pip命令进行安装。

  3. 特征提取:使用PyRadiomics库提供的API,导入影像数据并进行特征提取。可以选择感兴趣的区域进行分割,然后提取各种数学、几何和统计特征。

  4. 特征选择和分析:根据特定的研究目的和分析需求,对提取的特征进行筛选和选择。可以使用统计学方法、机器学习算法等进行特征选择和建模,以探索特征与疾病之间的关联和预测能力。

  5. 结果解释和应用:根据特征分析的结果,解释特征与疾病之间的关系,为临床决策、治疗规划和疾病管理提供支持。

pyradiomics的作用与价值

PyRadiomics的优势在于提供了丰富的影像组学特征库和功能,使得特征提取和分析变得简单和高效。它支持多种影像数据格式,并且提供了丰富的特征计算选项和参数调整的灵活性。此外,PyRadiomics还提供了可视化工具和API文档,方便用户进行结果展示和进一步的开发。

三、正文开始,敲代码

我们已经大致了解了影像组学和pyradiomics,接下来是正文

准备python环境与数据

这里有一个数据集,里面只有如下四个文件可以使用  影像组学测试数据

  

安装库

pip install pyradiomics

初始化特征抽取器

RadiomicsFeatureExtractor 是 PyRadiomics 库中的一个类,它负责从图像和标签中提取特征。通过使用参数文件,你可以配置特征抽取的方式,包括选择哪些特征计算、使用哪些滤波器、如何处理图像和标签等

作用:创建一个特征抽取器对象,并使用指定的参数文件进行初始化,以便后续使用这个特征抽取器进行特征计算

extractor = FEE.RadiomicsFeatureExtractor(parameter_file = para_path)

取出图片数据路径

当有多个数据样本时,根据文件后缀不同,赋予不同路径,进行遍历

file_path = os.path.join(root, file)if file.endswith("image.nrrd"):ori_path = file_pathelif file.endswith("label.nrrd"):lab_path = file_pathprint(file_path)

提取特征

result = extractor.execute(ori_path, lab_path)  # 抽取特征

输出特征

for key, value in result.items():  # 输出特征print("\t", key, ":", value)

指定所要提取的特征

假设我们只想保存 'original_shape_VoxelVolume' 和 'original_glcm_Correlation' 这两个特征(保存到一个CSV文件中)

selected_features = ['original_shape_VoxelVolume', 'original_glcm_Correlation']
for key, value in result.items():if key in selected_features:df = df.append({'Feature': key, 'Value': value}, ignore_index=True)
ori_path = None
lab_path = Noneoutput_path = 'data/pyradiomics/csv/selected_features.csv'
df.to_csv(output_path, index=False)

让我们看一眼csv文件内长什么样子

完整代码

from radiomics import featureextractor as FEE
import os
import pandas as pdfile_path = 'data/pyradiomics/nrrd/'
para_path = 'data/pyradiomics/Params.yaml'# 使用配置文件初始化特征抽取器
extractor = FEE.RadiomicsFeatureExtractor(parameter_file = para_path)
# 打印抽取器的参数、启用的滤波器和启用的特征
print("Extraction parameters:\n\t", extractor.settings)
print("Enabled filters:\n\t", extractor.enabledImagetypes)
print("Enabled features:\n\t", extractor.enabledFeatures)# 创建一个空的 DataFrame,用于存储特征数据
df = pd.DataFrame()for root, dirs, files in os.walk(file_path):ori_path = Nonelab_path = Nonefor file in files:# 取出项目文件夹中的图片数据的路径file_path = os.path.join(root, file)if file.endswith("image.nrrd"):ori_path = file_pathelif file.endswith("label.nrrd"):lab_path = file_pathprint(file_path)if ori_path and lab_path is not None:# 运行result = extractor.execute(ori_path, lab_path)  # 抽取特征print("Result type:", type(result))  # result is returned in a Python ordered dictionaryprint("")print("Calculated features")for key, value in result.items():  # 输出特征print("\t", key, ":", value)# 选择特定特征并将其保存到 CSV 文件中# 假设你只想保存 'original_shape_Volume' 和 'glcm_Correlation' 这两个特征selected_features = ['original_shape_VoxelVolume', 'original_glcm_Correlation']# 遍历所有样本的特征for key, value in result.items():# 如果当前特征是所选特征之一,则将其添加到 DataFrameif key in selected_features:df = df.append({'Feature': key, 'Value': value}, ignore_index=True)# 清空,进行下一次遍历ori_path = Nonelab_path = None# 指定保存到的 CSV 文件路径
output_path = 'data/pyradiomics/csv/selected_features.csv'# 将 DataFrame 保存为 CSV 文件
df.to_csv(output_path, index=False)
print("已保存")

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/45338.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网络安全数据集介绍

目录 1、KDD99 入侵检测数据集 2、NSL KDD 入侵检测数据集 3、UNSW_NB15 入侵检测数据集 4、NASA MDP 软件缺陷数据集 5、CNNVD 软件安全漏洞数据集 6、NVD 软件安全漏洞数据集 1、KDD99 入侵检测数据集 该数据集是从一个模拟的美国空军局域网上采集来的9个星期的网络连…

unsw计算机专业排名,新南威尔士大学UNSW计算机科学Computer Science专业排名第54位(2021年THE世界大学商科排名)...

2021年THE泰晤士高等教育计算机科学Computer Science专业世界大学排名公布,新南威尔士大学UNSW计算机科学世界排名第54位,新南威尔士大学UNSW计算机科学专业实力怎么样呢?下面美英港新留学介绍新南威尔士大学UNSW计算机科学专业培养计划,新南威尔士大学UNSW计算机科学专业研…

[当人工智能遇上安全] 7.基于机器学习的安全数据集总结

您或许知道,作者后续分享网络安全的文章会越来越少。但如果您想学习人工智能和安全结合的应用,您就有福利了,作者将重新打造一个《当人工智能遇上安全》系列博客,详细介绍人工智能与安全相关的论文、实践,并分享各种案…

找到一个好用的在线创意英文logo设计生成器网站

smashinglogo.com这个在线一键式生成LOGO的网站可以尝试下,输入品牌词和slogan可以无限生成logo。 下面简单举个例子,给大家看一下效果。假设要给Tesla生成一个logo,可以把品牌词写成Tesla,slogan我随便编了一句: jou…

请不要随便走上编程这条路

“互联网的黄金十年已经结束,接下来的十年是白银十年”。这话还是在2016年看到的,当时本人有些沮丧,毕竟还没找到实习的公司。 怎么说呢,在去年,也就是2015年的时候,不敢说别的,大部分互联网专业…

IC工程师简历制作全解读

前言 越来越觉得一份好简历真的很重要! 本文基于下面这个视频记录所得:那个拿35万offer的IC设计应届生简历是这么写的 IC工程师应届生薪资 工艺制造、封测方向——本科/专科:5000-8000元/月,硕士:8000-12000元/月设计方向——本科/专科:6000-1000元/月,硕士:1w5-2w元…

为什么有人说C++是最难学的编程语言? (4个回答)

从事嵌入式开发多年,有三种语言玩的比较多C/C java,从编程语言的难度来讲C是最难得,而且也是最难入门的编程语言,很多编程老手都是这个结论,为什么C是最难学的编程语言,虽然难学但还是很多编程老手喜欢研究它&#xff…

自学编程的人,90%以上都会掉进这些坑,避开这些误区能提高N倍学习效率

前言 几乎每一个程序员都会走上那么一段自学的道路,尤其是在校生或进入工作岗位之后,技术的提升基本都靠自学,有的虽然是网上报班学习,但更多时候还是自己在学习,师傅引进门,修行靠个人。 有的人自学很快…

30岁开始学编程晚吗?

二哥,说出来不怕你笑话,我和你年纪差不多。之前是干别的,但有点编程的基础,最近想转行程序员,不知道晚不晚,你能不能给我一些建议,或者说有没有一些攻略可以参考。 这是上个月一个读者小郑私信我…

机械专业转行IT行业,成功自学Java上岸(分享转行使)

秋招转眼就结束了,将近一年的努力,总算给了自己一个比较满意的结果。写下这篇贴子记录自己的转行以及秋招经历。 其实在转行初期,就无数次幻想着秋招结束,然后写一篇长长的经验贴的那种满足感。下面我尽量把我知道的,…

该如何从教育行业转行做IT——我的真实经历给出的偏门答案

“我需要,最狂的风,和最静的海。”——顾城 本文是对想要入行IT,但是没时间没钱上IT培训班的小伙伴的一些小小的建议,我即将要说的是最近发生在我自己身上的事,这些可以成为“如何转行IT”的一个偏门的答案&#xff0…

编程行业未来趋势如何

随时互联网不断的发展,编程技术不断的优化、成熟,编程行业未来趋势如何一直是热议的话题。 未来数字化,虚拟化,数据化的方向,就是说精神上的追求会成为一大消费趋势,看现在人们使用手机,玩电脑的…

这样学编程,直接原地起飞啊!

大家好,我是二哥呀。 今天来给大家分享一些学习编程的心得,真的颠覆了我以前对学习编程的刻板印象,可以这么说,如果你恰好处在大学阶段,看到了这篇内容,OK,恭喜你,如果你能按照我说…

学好编程的 4 个秘诀

你好呀,我是沉默王二,一枚沉默但有趣又帅气的程序员(你听,耳边是不是响起了装逼的声音)。今天我来掏心掏肺地聊聊学好编程的 4 个秘诀,应该会对你产生一些微妙而又积极的影响。 闭上眼睛转个圈&#xff0c…

盘点关于程序员的10个有趣的段子

(1)程序员的读书历程:x 语言入门 —> x 语言应用实践 —> x 语言高阶编程 —> x 语言的科学与艺术 —> 编程之美 —> 编程之道 —> 编程之禅—> 颈椎病康复指南。 (2)程序员最讨厌的四件事&#…

Unity角色扮演游戏集合

Unity角色扮演游戏集合 Aurora Trail A new epic game where the perspective of the camera changes everything. Do not let your body parts get in the same view as a wall with the same color, or you’ll lose it! Puzzle your way through challenging and appealing…

html下拉 小狗,html会动的小狗狗源码

一个纯html和css结合构建的会动的狗狗,适合自己去慢慢研究的页面,前端程序员们适合收藏哦~这样对我们的html和css技术提升也有所帮助哦! html会动的小狗狗源码:dog @-webkit-keyframes head {0% {-webkit-transform: rotate(0); transform: rotate(0); } 6.66667% {-webkit…

如何写一首让人膜拜的代码情诗?

1、木有女票?先放上一段来自(潘*扬)的神奇代码,助你快速脱单: //快速脱单代码 private static final THE_ONE ; ResultSet peopleInfoSet China.getPeople(); //获取全国人民的信息 while(peopleInfoSet.next()) { Per…

Android访问权限大全

访问权限图 权限的目的是为了保护Android用户的隐私。Android应用程序必须请求允许访问敏感用户数据(如联系人和 SMS),以及某些系统特征(如摄像头和 Internet)。根据该特征,系统可以自动授予许可&#xff…

安卓Permission权限请求

AndroidPermission,权限自动请求示例(所需权限被关闭时,会自动请求) 权限请求源码:(将应用的Activity设为PermissionActivity的子类,即可自动请求所需权限) package com.sc.demo;im…