mcpField
S
source-part-segmentation

source-part-segmentation

github.com/roble3创意与媒体128778 次安装2 周前更新
代码仓库

关于 source-part-segmentation

用于在生成网格前分割源图中设计部件的技能。它结合轮廓分析、分水岭分割和具名手动种子,并保留有歧义的重叠部分供后续几何处理。

主要功能

  1. 01轮廓层级分析
  2. 02分水岭拆分接触部件
  3. 03基于具名种子生成掩码
  4. 04部件分类与清单
  5. 05生成掩码和报告的脚本

适用场景

  1. 01为网格生成准备重叠部件
  2. 02用手动种子清单分离组件
  3. 03报告多张图像中的部件数量差异

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/roble3/cc-blender-skill --skill source-part-segmentation

安装后在 Claude Code 中输入/source-part-segmentation确认已加载。

附带文件scripts/seeded_part_masks.pyscripts/segment_source_parts.py

详细介绍

源部件分割

当源图像包含重叠或相接的设计部件时,请先执行此步骤,再运行 contour-to-mesh。 输出不是“漂亮的掩码”,而是下游几何必须遵循的源事实部件清单。

输入

  • 源图像、线框图、贴花或纹理图集;
  • 可选的手动种子清单,其中包含命名部件、多边形、种子点、大致矩形或 HSV/颜色范围;
  • 源清单,其中包含结构/装饰/上下文分类和预期部件数量。

工作流

  1. 选择最清晰的模态:Alpha、边缘、暗线、暗底亮色、色带或图集区域。
  2. 提取轮廓和层级,以识别候选对象、孔洞、嵌套细节和笔画。
  3. 如果组件相接,先运行基于距离变换标记的分水岭算法。
  4. 如果分水岭算法分割过度或不足,则改用种子分割:
    • 创建命名部件种子(bbox、polygon,或 seed_point + 可选的泛洪/HSV 容差);
    • 为每个命名结构部件保存一个掩码;
    • 明确标记有歧义的重叠部分,不要将其合并。
  5. 将掩码分类为 structural、decorative、face_feature、aura_context 或 validation_only。
  6. 将结构掩码传递给 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 距离变换 + 标记分水岭是分割相接组件的首选自动方法。
  • 分割后,主动轮廓细化可改善粗略掩码的边界。

评论

支持 Markdown