ノード一覧に戻る

マスク膨張収縮

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

処理で削られる場合でも、元から選ばれていた画素を必ず残します。

制御マップの基準
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 で選べます。

使用例

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