用途
该技能用于在将源图像轮廓转换为网格之前,对包含重叠或相接部件的源图进行部件分割。其输出不是普通意义上的“好看掩码”,而是下游几何必须遵循的“真值来源部件清单”。
主要能力
- 支持重叠部件提取、组件掩码生成。
- 支持标记分水岭分割(marker/watershed segmentation)。
- 支持轮廓层级分析(contour hierarchy analysis)。
- 支持图集部件隔离(atlas part isolation)。
- 提供源锁定重建的手动种子回退方案。
- 可将掩码分类为结构件(structural)、装饰件(decorative)、面部特征(face_feature)、氛围上下文(aura_context)或仅验证(validation_only)。
- 可将结构掩码传递给 contour-to-mesh;将特征掩码/关键点传递给 landmark-fit-repair;将图集区域传递给 atlas-uv-fitting。
输入
- 源图像、线框、贴花或纹理图集。
- 可选的手动种子清单,包含具名部件、多边形、种子点、粗略矩形或 HSV/颜色范围。
- 源清单,包含结构/装饰/上下文分类及预期部件数量。
使用方式
首次调用 Blender 前,需阅读 ../text-to-blender/references/mcp-backends.md。优先使用官方 MCP 处理共享能力,并在整个任务中保持所选后端不变。配方中的工具名称是客户端/旧版示例,需通过该参考文档及其 agent-host 指南进行映射。
工作流程:
- 选择最干净的模式:alpha、边缘、暗线、暗底亮色、色带或图集区域。
- 提取轮廓和层级,以识别候选对象、孔洞、嵌套细节和笔画。
- 若组件相接,先运行距离变换标记分水岭。
- 若分水岭过分割或欠分割,切换为种子分割:
- 创建具名部件种子(bbox、polygon 或 seed_point,加可选 flood/HSV 容差);
- 为每个具名结构件保存一个掩码;
- 对模糊重叠显式标记,而非合并。
- 将掩码分类为 structural、decorative、face_feature、aura_context 或 validation_only。
- 传递下游:结构掩码→contour-to-mesh;特征掩码/关键点→landmark-fit-repair;图集区域→atlas-uv-fitting。
硬性规则:不得通过对称性推断重复部件,只分割源图所示内容;若清单预期独立结构网格,不得合并重叠组件;若源图之间部件数量不一致,不得进入最终建模,应写冲突报告或规范策略;若自动分割模糊,写模糊报告并要求或创建手动种子矩形/点;将笔画/线条掩码与填充部件掩码分开保存,线框笔画是参考,除非明确用作轮廓边界。
种子清单模式:
{
"schema": "source_part_seed_manifest.v1",
"image": "path/to/source.png",
"parts": [
{"name":"leaf_top", "class":"structural", "bbox":[x,y,w,h], "mode":"non_background"},
{"name":"face_shell", "class":"structural", "polygon":[[x,y],[x,y],...], "mode":"polygon"}
]
}
允许的 mode 值:polygon、bbox、non_background、dark_lines、bright_on_dark、hsv_range。
脚本:
scripts/segment_source_parts.py:从图像生成组件掩码和 JSON 报告,可选分水岭。scripts/seeded_part_masks.py:将具名种子清单转换为确定性具名掩码和部件清单。
技术基础:OpenCV 轮廓/层级/矩作为基础测量层;OpenCV 距离变换加标记分水岭是相接组件的首个自动分割方法;分割后可进行主动轮廓细化以改善粗糙掩码边界。