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

如何叠加两个NIfTI文件?求助FSLeyes叠加后无法保存为NIfTI

解决NIfTI白质/灰质分割图像叠加并保存的问题

针对你需要叠加白质、灰质分割NIfTI图像并保存的需求,下面提供几种可靠的本地操作方法:

方法一:用FSL命令行工具(推荐,适配FSL环境)

首先确认两个图像的空间参数完全对齐(维度、体素大小、坐标系统),可以用fslhd gm.nii.gz和fslhd wm.nii.gz查看,对比dim1-dim4和pixdim1-pixdim4字段,确保一致。

需求1:合并为二值图像(灰质/白质区域统一标为1,背景为0)

执行命令:

fslmaths gm.nii.gz -add wm.nii.gz -bin combined_gm_wm_binary.nii.gz
  • -add:将两个图像的体素值相加
  • -bin:把所有大于0的体素转为1,背景保持0,得到纯二值的合并图像

需求2:创建带标签的图像(灰质=1,白质=2,方便后续区分)

分步执行更清晰:

# 给白质图像赋予标签值2
fslmaths wm.nii.gz -mul 2 wm_labeled.nii.gz
# 和灰质图像(标签值1)相加得到带区分的合并图像
fslmaths gm.nii.gz -add wm_labeled.nii.gz combined_gm_wm_labeled.nii.gz

最终图像中,灰质区域为1,白质为2,背景为0,后续可直接区分两种组织。

方法二:用Python + nibabel库(适合脚本化操作)

如果未安装nibabel,先执行:

pip install nibabel

然后运行以下脚本:

import nibabel as nib
import numpy as np

# 加载输入图像
gm_img = nib.load("gm.nii.gz")
wm_img = nib.load("wm.nii.gz")

# 提取图像数据数组
gm_data = gm_img.get_fdata()
wm_data = wm_img.get_fdata()

# 检查空间对齐(可选但推荐)
assert np.allclose(gm_img.affine, wm_img.affine), "两个图像空间参数不匹配,请先对齐"

# 生成二值合并图像
combined_binary = np.logical_or(gm_data > 0, wm_data > 0).astype(np.int16)
# 生成带标签的合并图像
combined_labeled = np.zeros_like(gm_data, dtype=np.int16)
combined_labeled[gm_data > 0] = 1
combined_labeled[wm_data > 0] = 2

# 保存结果,复用原图像的空间参数
nib.save(nib.Nifti1Image(combined_binary, gm_img.affine, gm_img.header), "combined_gm_wm_binary.nii.gz")
nib.save(nib.Nifti1Image(combined_labeled, gm_img.affine, gm_img.header), "combined_gm_wm_labeled.nii.gz")

FSLeyes导出小技巧(如果你仍想用可视化工具操作)

FSLeyes可以导出合并后的标签图像,但需要先合并图层:

  • 加载灰质、白质图像,将两者都设置为Label图层类型
  • 在左侧Layers面板,同时选中两个图层,右键选择「Combine into a single label layer」
  • 选中新生成的合并图层,点击菜单栏File > Export > Export Image,选择NIfTI格式保存即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 23:10:31