You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

多文件.mhd转.nii代码运行无报错但未执行转换是什么原因?

问题根因
  • 输出路径拼接错误:files[i]是包含完整源路径的字符串,直接和输出路径拼接后会生成非法嵌套路径,系统无法写入对应文件,自然没有生成结果。
  • 输出目录未提前创建:如果trial目录不存在,SimpleITK的WriteImage接口不会自动创建父目录,会静默写入失败,不会抛出显式报错。
  • 可选排查项:可先打印files变量,确认glob是否正确匹配到了所有.mhd文件。
修复后代码
import glob
import os
import SimpleITK as sitk

my_path = '/content/drive/MyDrive/Datasets/sliver07/sliver07-training-scans/scan/'
out_path = '/content/drive/MyDrive/Datasets/sliver07/sliver07-training-scans/trial/'

# 自动创建输出目录,已存在时不会报错
os.makedirs(out_path, exist_ok=True)

files = glob.glob(os.path.join(my_path, '*.mhd'))

for file_path in files:
    img = sitk.ReadImage(file_path)
    # 提取不带路径的原始文件名,去掉.mhd后缀
    base_name = os.path.basename(file_path).replace('.mhd', '')
    # 拼接合法输出路径
    out_file = os.path.join(out_path, f"{base_name}.nii")
    sitk.WriteImage(img, out_file)

内容的提问来源于stack exchange,提问作者AMANDEEP KAUR

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.12 10:57:02