文章目录

  • 1. 利用 3Dslicer 软件提取影像组学特征
  • 2. 利用 python 提取影像组学特征

1. 利用 3Dslicer 软件提取影像组学特征

  1. 安装插件:SlicerRadiomics
  2. 导入影像文件:breast1_label.nrrd(mask 文件) 和 breast1_image.nrrd(个人影像文件)。
  3. 切换插件:Welcome to Slicer → Informatics → Radiomics
  4. 设置参数(如图)
    Select Input Volume and Segmentation
    input image Volume: breast1_image(个人影像文件)
    input regions 感兴趣区:breast1_label(mask 文件)
    Extraction Customization:Manual Custimization
    Featrue Classes 选择提取哪些类特征,如 firstorder 和 gldm
    Resampling and Filtering 重采样 → Resampled voxel size:3,3,3(体素与体素间的距离都是 3mm,建议每个方向上的体素间隔一致)→ LoG kernel sizes: 3,4 (如果使用高斯拉布拉斯滤波器,需要设置一下,可以设置多个 size)。勾选 Wavelet-based features(是否提取小波滤波器的特征)
    其他默认
    output
    output table: Table1 (修改输出表格名),设置表格名称后 Apply
  5. Apply 后窗口右下角产生一个表格
    Image type:原始图像还是某种滤波器上产生的图片,前面 diagnostics 是影像的基本信息,从 log-sigma-3-0-mm-3D 开始是对特征提取有用的信息(log 滤波器,sigma size 3.0)。
    Feature class:特征分类
  6. 导出表格:格式选择 csv
  7. 做影像组学研究时通常把病例作为行,特征作为列,所以需要把 csv 表格转置一下用于后续研究:全选数据 → 到新表粘贴时选择转置。


2. 利用 python 提取影像组学特征

  • 基础版:提取一个病例的特征
    需要先安装pyradiomics
    参考:【影像组学】windows系统安装pyradiomics包的问题

    # pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pyradiomics
    from radiomics import featureextractor imageFile = 'file5/breast1/breast1_image.nrrd'
    maskFile = 'file5/breast1/breast1_label.nrrd'extractor = featureextractor.RadiomicsFeatureExtractor() # 初始化,给这一长串起个简写的名字
    featureVector = extractor.execute(imageFile, maskFile) #
    # print(featureVector.items()) 结果太多太杂乱
    # for循环遍历提取所需的信息 featureName
    for featureName in featureVector.keys():print("%s: %s" % (featureName, featureName[featureName]))
    

常用参数设置

  • 按待提取特征选择

    extractor.disableAllFeatures()  # 禁用所有特征
    extractor.enableFeaturesByName(firstorder=['Mean', 'Skewness']) # 只选几个特征提取featureVector = extractor.execute(imageFile, maskFile)
    for featureName in featureVector.keys():print("%s: %s" % (featureName, featureVector[featureName]))
    

  • 按待提取特征类型选择

    extractor.disableAllFeatures()  # 禁用所有特征
    extractor.enableFeatureClassByName('glcm') # 输出想要类型的特征,如 glcmfeatureVector = extractor.execute(imageFile, maskFile)
    for featureName in featureVector.keys():print("%s: %s" % (featureName, featureVector[featureName]))
    
  • 滤波器设置:在加滤波器(对图像做修整)的图像上提取特征。

    extractor.enableImageTypes(Original={}, LoG={}, Wavelet={})
    # Original原始图像 LoG滤波器 Wavelet小波滤波器featureVector = extractor.execute(imageFile, maskFile)
    for featureName in featureVector.keys():print("%s: %s" % (featureName, featureVector[featureName]))
    

  • 批处理提取影像组学特征

    import os
    import pandas as pdbasePath = 'data/featureExtraction'
    folders = os.listdir(basePath) # 读取featureExtraction文件夹下所有文件名
    print(folders)df = pd.DataFrame()
    for folder in folders:  # 遍历文件夹files = os.listdir(os.path.join(basePath,folder)) # 拼接文件夹下的文件路径
    #     print(files) 区分影像文件和 mask 文件for file in files:if file.endswith('image.nrrd'):  imageFile = os.path.join(basePath,folder,file) # 影像文件路径if file.endswith('label.nrrd'):maskFile = os.path.join(basePath,folder,file) # mask文件路径
    #     print(imageFile, maskFile) 特征提取extractor = featureextractor.RadiomicsFeatureExtractor()featureVector = extractor.execute(imageFile, maskFile)  # 得到结果是字典 dict# 从featureVector字典中提取数据转换成数据框,并 .T 转置(特征作为列)df_new = pd.DataFrame.from_dict(featureVector.values()).T  df_new.columns = featureVector.keys() # 列名df = pd.concat([df,df_new])  # 合并之前的数据框
    df.to_excel(os.path.join(basePath,'results.xlsx'))
    

【影像组学】用3Dslicer或Python提取影像组学特征相关推荐

  1. 学plc好还是python好_PLC是学西门子的好还是学三菱的?

    有人回复的很经典:"小孩子才会选择,大人肯定是都要." 如果你是学生,或者正准备踏入这个行业,建议你先学西门子的博途,毕竟这个在国内用的人多些. 但是,你要时刻记得,你的目标是星辰 ...

  2. python和c 先学哪个-C和Python我该先学什么?

    入门语言,我推荐学习你感兴趣的语法:注意,是你感兴趣的语法. 要知道:兴趣乃最好的老师.兴趣乃学习之根本. 要了解自己对哪个语法感兴趣,可按如下步骤执行:借/买上一本 C 语言基础书籍.一本 Pyth ...

  3. python和c先学哪个-C和Python我该先学什么?

    完善一下答案,谢谢知乎各位的支持,我点赞了金旭亮老师的答案,当然是觉得他说得有道理.但他是从另一个角度分析的,其实通过python找到了兴趣,还是要回来学C的,逃不掉.并不矛盾.(再次号召所有想学计算 ...

  4. python入门先学什么-C和Python我该先学什么?

    个人认为这样考虑: 1.如果想长线发展,走专业路线 --毫无疑问是C 两种语言其实本身都简单,注意我说的是语言本身简单,也就是说基本的语法.规范啥的其实都不难.但两个语言的"文化背景&quo ...

  5. 零基础学编程树莓派和python pdf_零基础学编程:树莓派和Python

    章编程基础知识和环境准备 1.1零基础的小白能学会编程吗 1.1.1为什么要学编程 1.1.2兴趣是好的老师 1.1.3为什么零基础的自学编程者,大多半途而废 1.1.4有趣好玩很重要 1.1.5家长 ...

  6. python绘制影像组学训练集、测试集对应的ROC曲线以及瀑布图(rad-score 瀑布图)

    python绘制影像组学训练集.测试集对应的ROC曲线以及瀑布图(rad-score 瀑布图) # 所有数据的瀑布图 tagets_all = df['label'] tagets_all = df. ...

  7. 影像组学视频学习笔记(34)-使用3D Slicer软件提取影像组学特征、Li‘s have a solution and plan.

    作者:北欧森林 链接:https://www.jianshu.com/p/afcd06221ea4 来源:简书,已获授权转载 RadiomicsWorld.com "影像组学世界" ...

  8. python做pca图_【教程】组学研究,用python快速实现PCA分析和绘图

    什么是PCA 主成分分析(Principal Component Analysis,PCA)是一种无监督的多元统计分析方法.在蛋白组学和代谢组学研究中能从总体上反应各组样本之间的总体差异和组内样本之间 ...

  9. python医疗影像_基于PyRadiomics的医疗影像纹理获取原型系统集成

    董建民 刘建新 摘 要:针对计算机辅助诊断中医学影像纹理计算相对复杂.商业分析软件功能相对固定和成本较高等问题,以目前主流的Python语言为开发工具,将其对应的PyRadiomics模块.Simpl ...

最新文章

  1. python 语言教程(3)变量
  2. text type dropdown list - INIT_DATA
  3. AVR单片机外部RAM访问
  4. 计算机网络学习笔记(29. DNS概述)
  5. 华为设备好的visio图标及ppt图标
  6. plsql打开sql窗口快捷键_PL/SQL 快捷键设置
  7. h0004.双倍 (10 分)
  8. fxmarket:9月25日黄金、沪深300、恒指策略分析
  9. 简单的NovelAI绘画方法
  10. 很多人将元宇宙与早前的区块链等转瞬即逝的风口作对比
  11. macbookpro安装ch340驱动
  12. SwiftUI 界面大全之个人简历界面支持自定义字体(教程含源码)
  13. 快手私信大卡片逆向分析
  14. 中国软件开发者(研究生)的人生规划(转自天涯虚拟社区)
  15. 如何为系统盘集成SATA驱动
  16. 不确定性推理:可信度计算
  17. java8Stream流的使用2--终止操作(分组,分区)
  18. Stata:CHFS中国家庭金融调查数据库清洗和处理
  19. android DevicePolicyManager实现一键锁屏
  20. 中国建设的世界上第一条时速达350公里的高铁客运新干线(武汉-广州(京广客运专线一部分))已全面完成铁路线建设

热门文章

  1. 计算机软件基础 一考试题,计算机应用基础试题及答案
  2. 2022年个人年终总结
  3. 微信公众号怎么实现批量标签分组粉丝好友管理
  4. linux开启h2客户端
  5. 我宣布:这是我心中录音转文字APP中NO.1
  6. 广结善缘,中国是人情社会。
  7. 四招教你无线电通讯工程现场天线驻波比测试
  8. 人工智能、深度学习与目标检测
  9. 阿里内部资料,10W字总结JAVA面试题-设计模式篇
  10. 蓝色妖姬玫瑰的js实现