source-part-segmentation について
メッシュ生成前に、元画像内のデザイン部品を分割するスキルです。輪郭解析、接触部品の分水嶺分割、名前付きシードを組み合わせ、曖昧な重なりを後続の形状処理用に保持します。
主な機能
- 01輪郭階層の解析
- 02接触部品の分水嶺分割
- 03名前付きシードによるマスク生成
- 04部品の分類と一覧化
- 05マスクとレポートの生成スクリプト
活用シーン
- 01メッシュ生成に向けた重複部品の準備
- 02手動シードマニフェストによる部品分離
- 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/色範囲を指定できます;
- 構造/装飾/コンテキストの分類と、想定パーツ数を含むソースマニフェスト。
ワークフロー
- 最も鮮明なモダリティを選択します:アルファ、エッジ、暗線、暗い背景上の明部、カラーバンド、またはアトラス領域。
- 輪郭と階層を抽出し、候補オブジェクト、穴、入れ子になった細部、ストロークを特定します。
- コンポーネントが接触している場合は、まず距離変換マーカー・ウォーターシェッドを実行します。
- ウォーターシェッドで過剰分割または分割不足が起きた場合は、シード付きセグメンテーションに切り替えます:
- 名前付きパーツシード(
bbox、polygon、または任意のフラッド/HSV 許容範囲を伴うseed_point)を作成します; - 名前付き構造パーツごとにマスクを1つ保存します;
- 曖昧な重なりは統合せず、明示的に記録します。
- 名前付きパーツシード(
- マスクを
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 の距離変換とマーカー・ウォーターシェッドが、接触するコンポーネントを分割する最初の自動手法です。
- セグメンテーション後に、アクティブコンターによる調整で概略マスクの境界を改善できます。
コメント
Markdown 対応