3D Slicer 与 pyradiomics 相关操作汇总文档

一、3D Slicer 核心插件说明

1. slicerRadiomics 插件

  • 核心功能:从医学影像(CT/MRI)中提取放射组学特征(形状、一阶统计、纹理特征等),将影像转化为量化生物标志物。
  • 应用场景:肿瘤良恶性鉴别、预后预测、精准医疗研究、药物研发患者分层。
  • 依赖库:核心依赖pyradiomics(Python 库),需搭配numpyscipySimpleITK等。

2. Total Segmentator 插件

  • 核心功能:基于深度学习的全自动 CT 影像分割,可快速分割 100 + 解剖结构(全身器官、特定血管 / 病变等)。
  • 优势:适配不同扫描设备,支持 GPU 加速(1-2 分钟完成全身分割),可辅助手术规划、放疗靶区生成。
  • 适用格式:支持 DICOM/NIfTI 格式影像。

二、Python 环境配置(conda+Jupyter)

  1. conda 虚拟环境核心操作
(1)创建环境(指定 Python 版本,适配 pyradiomics)
python 复制代码
# 创建Python 3.10的环境(pyradiomics兼容3.7-3.10)
conda create -n slicer2 python=3.10 -y
(2)激活 / 退出环境

bash

复制代码
conda activate slicer2  # 激活目标环境
conda deactivate        # 退出当前环境
(3)删除环境

bash

复制代码
conda env list          # 查看所有环境,确认目标环境名称
conda remove -n 环境名 --all  # 彻底删除环境(需先退出)
jupyter kernelspec remove 环境名  # 同步删除对应的Jupyter Kernel
(4)环境包管理

bash

复制代码
# 导出环境包列表
pip freeze > 包列表文件名.txt
# 从列表安装包
pip install -r 包列表文件名.txt

2. Jupyter Notebook Kernel 配置

(1)注册 Kernel(让 Jupyter 识别 conda 环境)

bash

复制代码
# 激活目标环境(如slicer2)
conda activate slicer2
# 安装ipykernel依赖
pip install ipykernel
# 注册Kernel(--user避免权限问题)
python -m ipykernel install --user --name slicer2 --display-name "Python (slicer2)"
(2)验证与切换 Kernel
  • 启动 Jupyter:jupyter notebook
  • 新建 Notebook 时选择 "Python (slicer2)";已有 Notebook 通过「Kernel → Change Kernel」切换。
  • 查看已安装 Kernel:jupyter kernelspec list
(3)删除冗余 Kernel

bash

复制代码
jupyter kernelspec remove slicer2  # 对应环境删除后同步清理

3. Jupyter Notebook 快捷键

  • 删除单元格:命令模式(Esc 进入)下按两次ddd
  • 撤销删除:命令模式下按z
  • 模式切换:编辑模式(绿色边框)按Esc进入命令模式,命令模式按Enter进入编辑模式

三、pyradiomics 安装问题及解决方案

1. 核心安装命令(优先推荐)

bash

复制代码
# 激活conda环境后执行
pip install --upgrade pip setuptools wheel
pip install numpy==1.21.5 scipy==1.7.3 SimpleITK==2.1.1  # 先安装依赖
pip install pyradiomics  # 安装稳定版
# 若需最新开发版(官方仓库)
pip install git+https://github.com/Radiomics/pyradiomics.git

2. 常见错误及解决方法

(1)"Failed to build pyradiomics"
  • 原因:缺少 C 编译工具(Windows)或依赖库不全。
  • 解决:Windows 安装「Visual C++ Build Tools」(勾选 "Desktop development with C++"),重启后重新安装。
(2)"ModuleNotFoundError: No module named 'numpy'"
  • 原因:numpy 安装在其他环境,或安装损坏。
  • 解决:在当前环境重新安装指定版本:pip install numpy==1.21.5,若仍失败则卸载后重装。
(3)Python 版本不兼容
  • 原因:pyradiomics 暂不支持 Python 3.11+(如 3.14)。
  • 解决:创建 Python 3.10 环境(参考 "conda 环境创建" 步骤),在新环境中安装。
(4)仓库地址错误("无 setup.py")
  • 原因:使用了非官方仓库(如mvallieres/radiomics)。
  • 解决:改用官方仓库安装(见核心安装命令)。

3. 验证安装成功

python

复制代码
# 在Python终端或Jupyter中执行
import radiomics
import numpy
print("pyradiomics版本:", radiomics.__version__)
print("numpy版本:", numpy.__version__)

四、关键文件操作与特征提取

1. pyradiomics 特征提取示例

python

复制代码
from radiomics import featureextractor

# 初始化提取器
extractor = featureextractor.RadiomicsFeatureExtractor()
# 执行提取(输入影像文件和标签文件)
feature_result = extractor.execute('image.nrrd', 'label.nrrd')
# 打印前5个特征(验证结果)
for i, (key, value) in enumerate(feature_result.items()):
    if i < 5:
        print(f"{key}: {value}")

2. 常见提示说明

  • 提示 "GLCM is symmetrical...":并非错误,是 GLCM 特征计算的冗余提示,不影响结果,可通过日志隐藏: python

    复制代码
    import logging
    logging.getLogger('radiomics').setLevel(logging.ERROR)

五、注意事项

  1. 环境兼容性:pyradiomics 对 Python 版本要求严格(3.7-3.10),避免使用 3.11 + 版本。
  2. 路径问题:特征提取时,确保image.nrrdlabel.nrrd路径正确,且两者空间维度、分辨率一致。
  3. 权限问题:Jupyter Kernel 注册时需加--user参数,避免无管理员权限导致安装失败。