本笔记来源于B站Up主: 有Li 的影像组学系列教学视频
本节(8)主要介绍: 使用代码批量提取特征
 

数据存放路径及格式如图:


 
 

import radiomics
from radiomics import featureextractor
import pandas as pd
dataDir = 'C:/Users/RONG/Desktop/PythonBasic/Images/'
folderList = ['001','002','003','004','005']
extractor = featureextractor.RadiomicsFeatureExtractor()
df = pd.DataFrame()
for folder in folderList:
    imageName = dataDir + folder +'/lung_image.nrrd'
    maskName = dataDir + folder + '/lung_label.nrrd'
    featureVector = extractor.execute(imageName,maskName)
    df_add = pd.DataFrame.from_dict(featureVector.values()).T
    df_add.columns = featureVector.keys()
    df = pd.concat([df,df_add])
df.to_excel(dataDir + 'results.xlsx')

 
提取到的excel表打开后是这样的:

 

注意,这里李博士只是演示批量提取的方法,具体的pyradiomics参数需要根据自己的研究目的来调整。
 
 

作者:北欧森林
链接:https://www.jianshu.com/p/bce6ea9eeab4
来源:简书,已获授权转载

    3 个月 后

    强璐
    请教一下,如果我将dcm格式文件转为jpg格式文件,然后用代码设置矩形框(坐标我还保留着)裁剪出了大致的ROI区域,也是jpg格式的。现在我想用pyradiomics提取特征,我该怎么做呢?我看提取取器需要两个参数,一个原图,一个mask。
    我需要把裁剪出的ROI区域图片转化为nii吗?转回nii对信息有没有影响? 还是说我前面的步骤不太对,需要重新做一下? 拜托您指点一下,谢谢了!!!

      李任远 好的,谢谢啦!


      李任远 还有一个问题想请教您一下,提取器的第一个参数原图,是指一个病人的整个序列,还是只是指画ROI区域时对应的层数?

        李任远
        就是提取器的第一个参数,是指一个病人的一整套影像(包含何种序列),还是指用于画ROI区域的那个序列的几张影像 ?
        不懂的太多了😭 🙏

          loveling 提这种问题说明你对影像组学研究最基本的概念都没搞清楚 我不想回答这种问题

            loveling 至少要MASK和用于画ROI影像的那一组完全的序列,先去把基础再学一下,看看相关文献和综述,理解一下影像组学的研究流程,入门课程李博在B站有免费的视频,马上四月也会上线付费的全套体系的手把手教学课程,可以关注一下。

              1 年 后

              您好,我在特征提取的时候出现报错ValueError: Image/Mask geometry mismatch. Potential fix: increase tolerance using geometryTolerance, see Documentation:Usage:Customizing the Extraction:Settings:geometryTolerance for more information

              我也查阅的pyradiomics网站里面没有给出相应解决办法的事例因此不知道该如何处理这个问题,可以麻烦您帮忙解决一下吗?

                bihu 报错信息提示的很明白啊,你的ROI和原始图像不匹配,要么是路径问题,要么是数据问题,自己核对一下,如果还是不行的话发几个样例ROI和对应原始图像到我邮箱看看

                  2 个月 后

                  老师您好,在通过代码进行影像特征提取时,发现提取出来的特征没有那么多,查看分类的话,比如shape的特征官网有16个,但是提取出来只有14个,shape2d官网提示有10个,提取出来只有9个,请问这是正常的吗?

                    李任远 李老师您好,对比了官方文档,发现shape3d一栏缺少了“Spherical Disproportion,Compactness 1,Compactness 2”这三个特征,shape2d缺少的是“Spherical Disproportion”这个特征,而且用代码或者用李老师开发的软件跑出来的shape3d缺的都是这三个,新手刚接触,希望李老师能指点一下,谢谢老师!

                      LWQ pyradiomics官方提示:

                      pyradiomics/examples/exampleSettings folder, Compactness 1 and Compactness 2 are therefore disabled.

                      exampleSettings 文件夹内yaml文件提示:

                      # redundant Compactness 1, Compactness 2 an Spherical Disproportion features are disabled by default, they can be enabled by specifying individual feature names (as is done for glcm) and including them in the list.

                      • LWQ 回复了此帖
                        说点什么吧...