admin管理员组文章数量:1794759
【影像组学】用3Dslicer或Python提取影像组学特征
文章目录
- 1. 利用 3Dslicer 软件提取影像组学特征
- 2. 利用 Python 提取影像组学特征
1. 利用 3Dslicer 软件提取影像组学特征
2. 利用 python 提取影像组学特征
-
基础版:提取一个病例的特征 需要先安装pyradiomics 参考:【影像组学】windows系统安装pyradiomics包的问题
# pip install -i pypi.tuna.tsinghua.edu/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') # 输出想要类型的特征,如 glcm featureVector = 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 pd basePath = '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提取影像组学特征 内容由林淑君副主任自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.xiehuijuan.com/baike/1686589649a85064.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论