使用pyradiomics进行医学图像特征提取 您所在的位置:网站首页 影像组学特征提取软件有哪些 使用pyradiomics进行医学图像特征提取

使用pyradiomics进行医学图像特征提取

2024-03-15 05:59| 来源: 网络整理| 查看: 265

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录 前言一、安装pyradiomics步骤 1.1、运行环境配置1.2、检查pyradiomics工具包是否安装成功二、pyradiomics使用步骤 2.1、运行准备2.2、运行总结

前言

最近在尝试用影像组学特征分析的方法对超声造影图像进行分析,第一次使用pyradiomics工具包。借鉴了很多大佬的文章,尝试了许多方法,下面将自认为最不容易报错、初步提取特征最全的方法,记录于此,方便日后查看。

提示:以下是本篇文章正文内容,下面案例可供参考

一、安装pyradiomics步骤 1.1、运行环境配置

1.安装python,可直接进入python官网进行安装

2.在已经安装好python环境的terminal中执行:

pip install pyradiomics

等待安装结束。

1.2、检查pyradiomics工具包是否安装成功

在 terminal 中输入 python ,在三箭头后输入 import radiomics,若无任何输出,则安装完成。

二、pyradiomics使用步骤 2.1、运行准备

1.只需要准备以下四个文件,并将这四个文件放在一个项目下即可,如图:

其中img.nrrd为原始图片转.nrrd格式(图片转.nrrd代码如下)label.nrrd同理。

import SimpleITK as sitk from skimage import io, color # 读取PNG图像 png_image = io.imread('img.png', as_gray=True) # 将灰度图转换为RGB图像(如果原图是彩色图像,则可以跳过此步骤) png_image_rgb = color.gray2rgb(png_image) # 将图像转换为SimpleITK格式 sitk_image = sitk.GetImageFromArray(png_image_rgb) # 保存为NRRD格式 sitk.WriteImage(sitk_image, 'img.nrrd')

第三个文件为Params.yaml文件,这是pyradiomics中的配置文件,获取方式:

在https://github.com/Radiomics/pyradiomics 上把项目下载下来并解压找到解压后保存文件夹的路径,并在该路径下搜索Pyradiomics_Params.yaml这个文件就是我们的第三个文件Params.yaml文件

第四个文件test.py代码如下:

import radiomics.featureextractor as FEE import SimpleITK as sitk import pandas as pd # 文件名 main_path = '.' ori_name = r'\img.nrrd' lab_name = r'\label.nrrd' para_name = r'\Params.yaml' # 文件全部路径 ori_path = main_path + ori_name lab_path = main_path + lab_name para_path = main_path + para_name print("原始路径:" + ori_path) print("标签路径:" + lab_path) print("参数路径:" + para_path) # 使用配置文件初始化特征抽取器 extractor = FEE.RadiomicsFeatureExtractor(para_path) print("抽取参数:\n\t", extractor.settings) print("启用的滤波器:\n\t", extractor.enabledImagetypes) print("启用的特征:\n\t", extractor.enabledFeatures) # 读取掩模图像,查看唯一标签值 mask_image = sitk.ReadImage(lab_path) unique_labels = set(sitk.GetArrayFromImage(mask_image).ravel()) print("掩模中的唯一标签:", unique_labels) # 运行 if 27 in unique_labels: result = extractor.execute(ori_path, lab_path, label=27) # 抽取特征 print("结果类型:", type(result)) # 结果以 Python 有序字典的形式返回 print("") print("计算的特征") for key, value in result.items(): # 输出特征 print("\t", key, ":", value) # 将结果写入 Excel 文件 df = pd.DataFrame.from_dict(result, orient='index', columns=['特征值']) writer = pd.ExcelWriter('提取的特征信息.xlsx', engine='xlsxwriter') df.to_excel(writer, sheet_name='Sheet1', index=True) # 设置 index=True 将索引也写入 Excel writer.save() print("特征已保存至提取的特征信息.xlsx") else: print("错误:掩模中不存在标签 27。") 2.2、运行

运行test.py

运行代码时要注意:掩膜中的唯一标签要对应好,上述代码将标签值打印出来了,对应打印的标签值进行填写(例如我所用的标签值为27)。

最后特征值以表格的形式展现。

总结

这里借鉴了很多大佬的文章,尤其感谢:Repo Kristx,非常感谢大佬的文章,很有帮助(若侵权请私聊删帖)



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有