免费软件-头尾裁剪:按物理 SI 方向,用两个 label 定义裁剪上下界(通用版)
往期推荐:
文献分享:人工智能衍生的移行区PSA密度作为减少MRI阴性男性不必要的前列腺系统性活检的分诊工具
文献分享:用于颅内动脉瘤血流动力学实时预测的物理约束图神经网络
免费软件-用 mask2 的 ROI 筛选 mask1(去脂:去背景:保留感兴趣区域)
文献分享:直肠癌肿瘤沉积的风险分层:基于MRI影像组学的双中心研究
这个功能用于批量裁剪 NIfTI 图像及其 mask:在 mask 中指定两个标签(label A 与 label B),程序会自动识别影像的物理上下(SI)方向,然后沿 SI 轴把体数据裁到“上界 label 的顶端 → 下界 label 的底端”的范围,并可在上下端增加体素级 padding。 不局限于椎体:只要 mask 里存在你指定的两个 label(肿瘤/器官/血管/骨骼/任意ROI 都可以),都能用来做头尾裁剪。

1. 你需要准备什么
·images_dir:待裁剪的影像目录(.nii/.nii.gz,平铺文件名)
·masks_dir:对应的 mask 目录(平铺文件名)
·文件名必须一一对应:例如 case001.nii.gz 在两个目录都要存在
·mask 中需要有两个标签值(整数):
olabel_l2:这里可以理解为 label_top(上界标签)
olabel_l5:这里可以理解为 label_bottom(下界标签)
界面字段名仍叫 label_l2/label_l5,但含义已是“上界标签/下界标签”,与具体解剖结构无关。

2. 参数怎么填(通用解释)
·label_l2(=label_top):用来确定裁剪的“上边界”的标签值
·label_l5(=label_bottom):用来确定裁剪的“下边界”的标签值
边界的取法是按 SI 方向的极值:
上界:取 label_top 在 SI 轴上的最上端位置(再加 pad_vox_top)
下界:取 label_bottom 在 SI 轴上的最下端位置(再加 pad_vox_bottom)
pad_vox_top:向更“头侧/上方”额外保留的体素数
pad_vox_bottom:向更“足侧/下方”额外保留的体素数
padding 单位是“体素(voxel)”,不是毫米。

3. 功能做了什么(处理逻辑)
对每个同名文件对(CT 与 mask):
1.读取影像与 mask,检查尺寸一致;
2.在 mask 中分别找到 label_top 与 label_bottom 的所有体素;
3.根据 NIfTI affine 自动判断哪一轴对应物理 SI,以及 SI 的正负方向(避免不同存储方向导致上下颠倒);
4.计算裁剪索引范围(含 padding);
5.同步裁剪影像与 mask;
6.更新 affine 平移,保证裁剪后仍在正确物理坐标;
7.输出到 out_images_dir/out_masks_dir,文件名不变。

4. 常见用法举例
·用器官上/下端做裁剪:例如 label_top=肝脏、label_bottom=肾脏(或同一器官的两个不同标注)
·用血管/管腔范围做裁剪:例如上界用胰管、下界用胆管(视你的标注而定)
·用肿瘤与某结构限定范围:例如上界用肿瘤、下界用某解剖标志(只要两者都存在)

5. 日志里“跳过”的主要原因
·找不到同名 mask
·影像与 mask 尺寸不一致
·mask 中缺少任一指定 label(label_top 或 label_bottom)
·计算出的裁剪范围异常(通常是标签分布异常或标签填错)
关注并私信“旋进智影科研”,回复“masktools”即可获得下载地址

夜雨聆风
