我有 200 多个具有匹配分段的 CT 卷文件。卷采用 .nrrd 格式,分段采用 seg.nrrd 格式。我需要将这两种格式都设为 .nii.gz 格式,并且我想编写从一种格式到另一种格式的转换脚本。
关于卷,一切都很简单,使用sitk:
将 SimpleITK 导入为 sitk
img = sitk.ReadImage(“your_image.nrrd”) sitk.WriteImage(img, “your_image.nii.gz”)
我也对分段做了同样的事情,乍一看效果很好。但现在的问题是分段不再注册到卷中。图像尺寸和图像原点不再相同,因此我无法处理转换后的图像。
当我使用 3D-Slicer 执行以下手动步骤时,也会发生同样的情况: 1. 将 .seg.nrrd 文件加载到 Slicer 作为分割 2. 将分割保存为 .nrrd 文件而不是 seg.nrrd 3. 导入 .nrrd 文件作为 Volume 并将分段保存为 .nii.gz
但是我想出了一种在保留所有维度的同时手动转换数据类型的方法: 1. 导入卷以及相应的分段 (.seg.nrrd) 2. 将分段导出到标签图,并将参考卷设置为我的对应卷3.将Labelmap另存为nii.gz(4.不确定我的项目是否需要该步骤:将Labelmap转换为标量并安全为nii.gz)
在这两种情况下 3. 和 4. 我有一个具有匹配尺寸的 nii.gz 文件。但因为我有 200 多卷,所以我需要编写脚本。但到目前为止我还没有发现任何东西。你有什么想法?谢谢!