ノード一覧に戻る

マスク膨張収縮

morphology

マスクの形を太らせる、細らせる、小さい点を消す、小さい穴を埋めるためのノードです。

確認済み
解説あり

入力ポート

名前説明
画像
input
Image
必須
形を太らせたり細らせたりしたいマスクまたは画像です。
制御マップ
control
Image
接続すると、選ばれた画素だけで膨張・収縮などの変化を許可します。

出力ポート

名前説明
画像
output
Image
マスクの形を太らせる、細らせる、点を消す、穴を埋める処理をした結果です。

パラメータ

名前既定値範囲説明・選択肢
処理
operation
Enum
Dilate

太らせる、細らせる、小さい点を消す、小さい穴を埋める、のどれを行うかです。

  • 膨張Dilate
    白い部分や不透明な部分を外側へ太らせます。アウトラインや当たり判定を少し広げたい時に使います。
  • 収縮Erode
    白い部分や不透明な部分を内側へ細らせます。マスクを少し小さくしたい時に使います。
  • オープンOpen
    小さい点やノイズを消します。大きな形はなるべく残します。
  • クローズClose
    形の中にある小さい穴を埋めます。外側の大きさはなるべく保ちます。
基準
source
Enum
Alpha

最小値・最大値によるグレースケール形態処理の対象成分です。値は二値化されません。透明度なら Alpha、白黒画像なら Luminance を使います。

  • OKLCH 明度OKLCH-L
    見た目の明るさで判定します。影やハイライトなど、目で見た明暗に合わせたい時に使います。
  • OKLCH 彩度OKLCH-C
    色の鮮やかさで判定します。くすんだ色と鮮やかな色を分けたい時に使います。
  • HSV 彩度HSV-S
    HSV の鮮やかさで判定します。一般的な色相・彩度・明度の感覚で選びたい時に使います。
  • HSV 明度HSV-V
    RGB の一番明るいチャンネルを基準にします。光った色や原色の強さを見たい時に使います。
  • RGB 赤RGB-R
    赤の強さで判定します。赤みだけを抜き出したい時に使います。
  • RGB 緑RGB-G
    緑の強さで判定します。緑成分だけを抜き出したい時に使います。
  • RGB 青RGB-B
    青の強さで判定します。青成分だけを抜き出したい時に使います。
  • アルファAlpha
    透明度で判定します。不透明な形だけをマスクにしたい時に使います。
  • 輝度Luminance
    RGB から計算した明るさで判定します。OKLCH より単純な白黒変換に近い結果が欲しい時に使います。
半径
radius
Int
11–16

何ピクセル分太らせる/細らせるかです。値を上げるほど変化が大きくなります。

形状
shape
Enum
Square

周囲を見る形です。四角は角まで広がりやすく、ひし形は斜め方向が控えめになります。

  • 四角Square
  • ひし形Diamond
出力
output_mode
Enum
Mask

白黒マスクとして出すか、元画像の透明度だけを更新するかを選びます。

  • マスクMask
    白黒マスクとして出力します。後続の Mask 系ノードに渡しやすい形です。
  • アルファ更新Alpha
    元の色は残して、透明度だけを太らせたり細らせたりします。
出力範囲
output_region
Enum
Full

処理後全体、増えた部分だけ、減った部分だけのどれを出すか選びます。

  • 処理後全体Full
    処理後の形全体を出力します。
  • 増えた部分Added
    処理によって増えた部分だけを出力します。
  • 減った部分Removed
    処理によって減った部分だけを出力します。
元の形を残す
preserve_original
Bool
false

Closeで穴を埋める時に、元から選ばれていた画素を必ず残します。

制御マップの基準
control_source
Enum
Auto

任意の制御マップをどの成分で判定するか選びます。

  • 自動Auto
    透明度があればアルファを使い、全面不透明なら輝度を使います。
  • OKLCH 明度OKLCH-L
    見た目の明るさで判定します。影やハイライトなど、目で見た明暗に合わせたい時に使います。
  • OKLCH 彩度OKLCH-C
    色の鮮やかさで判定します。くすんだ色と鮮やかな色を分けたい時に使います。
  • HSV 彩度HSV-S
    HSV の鮮やかさで判定します。一般的な色相・彩度・明度の感覚で選びたい時に使います。
  • HSV 明度HSV-V
    RGB の一番明るいチャンネルを基準にします。光った色や原色の強さを見たい時に使います。
  • RGB 赤RGB-R
    赤の強さで判定します。赤みだけを抜き出したい時に使います。
  • RGB 緑RGB-G
    緑の強さで判定します。緑成分だけを抜き出したい時に使います。
  • RGB 青RGB-B
    青の強さで判定します。青成分だけを抜き出したい時に使います。
  • アルファAlpha
    透明度で判定します。不透明な形だけをマスクにしたい時に使います。
  • 輝度Luminance
    RGB から計算した明るさで判定します。OKLCH より単純な白黒変換に近い結果が欲しい時に使います。
制御しきい値
control_threshold
Float
0.50–1 / step 0.01

制御マップがこの値以上の場所だけで形を変化させます。

制御を反転
control_invert
Bool
false

しきい値で判定する前に制御マップを反転します。

左右ループ
wrap_x
Bool
false

左右の端がつながっているものとしてマスクを太らせたり細らせたりします。タイル素材向けです。

上下ループ
wrap_y
Bool
false

上下の端がつながっているものとしてマスクを太らせたり細らせたりします。タイル素材向けです。

概要

マスクの白い部分を太らせたり、細らせたり、小さなゴミや穴を整えたりするノードです。選択範囲を少し広げたい、細いノイズを消したい、透明部分のフチを調整したい時に使います。

source で選んだ成分を二値化せず、連続した濃淡のまま最小値・最大値処理します。 半透明やグレーのマスクでは、その濃淡も結果に反映されます。

使い方のポイント

  • 4つの処理の覚え方: Dilate=太らせる、Erode=細らせる、 Open=白ゴミを消す(縮めて戻す)、Close=穴を埋める(広げて戻す)
  • 非ループ時の Close は、キャンバス外を穴として扱わず、画像端に接する元の形を 不意に削らないように処理します
  • 元の形を残すClose の時だけ表示・適用されます。旧ファイルでほかの処理に true が残っている場合は、その値を無視して警告します
  • 処理上必ず空になる組み合わせ(例: Dilate + Removed)は、空画像を返したうえで 出力範囲 に警告を表示します
  • マスクワークの定番前処理: 自動生成したマスク(edge_detect / しきい値系の出力)は Open/Close で一度掃除してから使うときれい
  • pixel_cleanup との使い分け: 1px 限定の保守的な掃除は pixel_cleanup、 半径を指定した本格的な整形は morphology

関連ノード

  • pixel_cleanup — 1px 限定の軽量版掃除
  • mask / mask_boolean — 整えたマスクの使い先
  • distance_field — 境界からの距離を使うもう1つの整形アプローチ
  • outline — 太らせによる輪郭ではなく専用の輪郭線

使用例

  • Dilate でキャラクターのマスクを 1px 広げ、アウトライン用の下地にする。
  • Erode でマスクを少し内側に縮め、フチのにじみを消す。
  • Open で小さな白い点ノイズを消す。
  • Close で塗りの中に空いた小さな穴を埋める。
  • タイル素材のマスクを処理する時は wrap_x / wrap_y をオンにし、端の形も反対側とつながるように整える。
ノード一覧に戻る
マスク膨張収縮 — PixPipeline ノード解説