免费软件-用 mask2 的 ROI 筛选 mask1(去脂:去背景:保留感兴趣区域)
这个功能用于按另一个掩膜(mask2)定义的 ROI 区域,对目标掩膜(mask1)进行筛选:
·ROI 内:保留 mask1 原有标签值
·ROI 外:全部置 0(清空)
常见用途:用肌肉 ROI 把脂肪/背景从器官分割里剔除、只保留某一解剖区域内的标签等。

一、功能原理(你会得到什么)
对每个同名文件(.nii / .nii.gz),计算:

其中 ROI(mask2) 由“前景规则”决定(见下文)。

二、输入输出(运行前你需要准备什么)
1)输入目录
·mask1_dir:要被筛选的掩膜目录(输出主要看它)。 例:器官/分区标签(1-8 等)
·mask2_dir:提供 ROI 的掩膜目录(作为“筛选模板”)。 例:肌肉区域、针灸区域、某个器官粗分割等
·out_dir:输出目录(生成与 mask1 同名的 NIfTI 文件)
2)匹配规则(非常重要)
·本功能采用目录平铺文件名匹配:只看文件名是否相同。 例如:mask1_dir/A.nii.gz 会去找 mask2_dir/A.nii.gz
·只处理 mask1_dir 下的 .nii/.nii.gz 文件。
·如果 mask2 缺文件或两者 shape 不一致,会跳过该病例并在日志提示。

三、参数说明
1)mask2 前景规则(决定 ROI)
支持三类写法(和“多mask交集/共识”那一页一致):
·gt0(默认):mask2 > 0 视为 ROI 适合二值 mask 或“非零即前景”的多标签 mask
·1:只把 mask2 == 1 当 ROI 适合只想用某一个标签当 ROI
·{1,2,3} 或 1,2,3:把多个标签当 ROI(集合) 适合 ROI 分布在多个 label 中的情况
例子:
·肌肉 mask 是二值:用 gt0
·肌肉 mask 只有 label=1 是肌肉:用 1
·ROI 是 label 2/4/7:用 {2,4,7}
2)keep_range(可选:限制 mask1 输出标签范围)
·留空:不限制,ROI 内 mask1 是多少就保留多少
·填 1-8:只保留输出中 ([1,8]) 的标签,其余置 0
什么时候用:
·你的 mask1 可能含有异常值/噪声标签,想强制只保留 1–8。

四、操作步骤(GUI)
1.打开工具,进入 Tab:(6) mask2筛选mask1
2.依次选择/填写:
omask1_dir
omask2_dir
oout_dir
3.设置 mask2 前景规则(如 gt0 或 {1,2,3})
4.(可选)设置 keep_range(如 1-8)
5.点击 运行 mask2筛选mask1
6.在“日志”窗口查看进度与跳过原因(缺文件、shape 不一致等)。

五、常见问题与注意事项
1)为什么会跳过?
·mask2 没有同名文件:[SKIP] mask2 missing
·两个 mask 尺寸不一致:[SKIP] shape mismatch
o这通常意味着两者不在同一空间/分辨率,需要先重采样或配准到一致。
2)这个功能会改变 affine/header 吗?
·输出会沿用 mask1 的 affine/header(空间信息以 mask1 为准)。
3)适合什么场景?
·去脂:用“肌肉 ROI”筛选器官/组织标签
·去背景:用“人体/体表 ROI”筛选目标分割
·多阶段分割:先粗分割得到 ROI,再用 ROI 约束精分割标签

六、示例配置(可直接照抄)
·去脂示例:
omask1_dir:acupuncture_mask(多标签 1–8)
omask2_dir:acupuncture_muscle(肌肉区域,非零为前景)
omask2 前景规则:gt0
okeep_range:1-8(可选)
oout_dir:acupuncture_no_fat
关注并私信“旋进智影科研”,回复“masktools”即可获得下载地址

夜雨聆风
