> For the complete documentation index, see [llms.txt](https://docs.roboflow.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.roboflow.com/workflows/ja/burokku/blocks/classical-computer-vision/morphological-transformation.md).

# モルフォロジー変換

## v2

設定可能な操作を使用してカラー画像に形態学的変換を適用し、オブジェクトの形状の変更、ノイズ除去、穴埋め、エッジ検出、特徴抽出を行います。カラー画像は全チャンネルに変換を適用して処理され、出力は下流の処理ブロックとの互換性のためにカラーとして返されます。

## このブロックの仕組み

このブロックは、カラー画像（BGR または BGRA）に直接、形態学的変換を適用します。このブロックは次のとおりです:

1. 変換する入力画像を受け取ります（カラー画像またはグレースケール画像に対応）
2. 画像がカラー形式であることを保証します（グレースケールの場合は、一貫したカラー出力のために BGR に変換します）
3. 指定された kernel\_size の正方形の構造要素（カーネル）を作成します
4. 選択した形態学的操作をすべてのチャンネルに同時に適用します
5. 変換の全過程でカラー形式を保持します（BGRA 画像ではアルファチャンネルも含む）
6. 形態学的変換後のカラー画像を返します

対応する操作:

* **収縮**: 境界ピクセルを削除してオブジェクトを縮小します（オブジェクトを分離し、ノイズを除去します）
* **膨張**: 境界ピクセルを追加してオブジェクトを拡張します（オブジェクトを接続し、穴を埋めます）
* **オープニング**: 収縮の後に膨張を行います（ノイズを除去し、オブジェクトを分離します）
* **クロージング**: 膨張の後に収縮を行います（穴を埋め、断片を接続します）
* **オープニング後にクロージング**: 先にオープンしてからクローズします（エッジ検出と精密化のための特殊な前処理）
* **グラディエント**: 膨張から収縮を引いたもの（オブジェクトの境界/エッジを強調します）
* **トップハット**: 入力からオープニングを引いたもの（小さな明るいディテールを検出します）
* **ブラックハット**: クロージングから入力を引いたもの（小さな暗いディテールを検出します）

すべての操作はカラー形式を保持するため、出力は Mask Edge Snap のような下流の色ベースのブロックと互換性があります。

## 一般的な使用例

* **カラー画像の前処理**: 下流ブロック向けに色情報を保持したままカラー画像を処理します
* **エッジ検出と精密化**: エッジスナップ前の特殊な前処理としてオープニング+クロージングを使用します
* **ノイズ除去**: カラーチャンネルを維持しながらカラー画像からノイズを除去します
* **特徴抽出**: カラー画像から形態学的特徴を抽出します
* **画像条件付け**: カラー画像を色ベースの下流処理用に準備します

## 他のブロックへの接続

* **Mask Edge Snap の前処理**: エッジスナップとマスク精密化のためにカラー画像を出力します
* **可視化ブロックの前**: 形態学的に処理されたカラー画像を表示します
* **カラー画像パイプライン内**: 色情報を維持しながらカラー画像を処理します

### 型識別子

ステップで次の識別子を使用してください `"type"` フィールド： `roboflow_core/morphological_transformation@v2` ワークフローにこのブロックをステップとして追加するには。

### プロパティ

| **名前**    | **型** | **説明**                                                                                                                       | 参照 |
| --------- | ----- | ---------------------------------------------------------------------------------------------------------------------------- | -- |
| `name`    | `str` | このステップの一意の識別子を入力してください。                                                                                                      | ❌  |
| `カーネルサイズ` | `整数`  | 形態学的操作に使用する正方形の構造要素（カーネル）のサイズです。正の整数でなければなりません。一般的な値は 3〜15 の範囲です。オブジェクトのサイズと望ましい変換スケールに応じて調整してください。。                         | ✅  |
| `操作`      | `str` | 適用する形態学的操作の種類です。'Opening then Closing' は、特にエッジ検出およびマスク精密化（例: Mask Edge Snap ブロック）前の前処理用に設計されています。その他の操作はすべて標準的な形態学的定義に従います。。 | ✅  |

この **参照** 列は、で利用可能な動的値を使ってプロパティをパラメータ化できる可能性を示します `ワークフロー` 実行時。参照 *バインディング* 詳細は。

### 入力と出力のバインディング

利用可能な接続は、そのバインディング種別によって異なります。どのバインディング種別が `形態学的変換` のバージョン `v2` あるか確認してください。

<details>

<summary>入力と出力のバインディング</summary>

* 入力
  * `image` ([*`image`*](/workflows/ja/gaido/developer-guide/kinds/image.md)): 形態学的変換を適用する入力カラー画像です。BGR、BGRA、またはグレースケール画像に対応します。グレースケール画像は、一貫したカラー出力のために自動的に BGR に変換されます。変換はすべてのチャンネルに適用されます。出力は常にカラー形式（BGR）で、Mask Edge Snap のような下流ブロックとの互換性があります。。
  * `カーネルサイズ` ([*`整数`*](/workflows/ja/gaido/developer-guide/kinds/integer.md)): 形態学的操作に使用する正方形の構造要素（カーネル）のサイズです。正の整数でなければなりません。一般的な値は 3〜15 の範囲です。オブジェクトのサイズと望ましい変換スケールに応じて調整してください。。
  * `操作` ([*`string`*](/workflows/ja/gaido/developer-guide/kinds/string.md)): 適用する形態学的操作の種類です。'Opening then Closing' は、特にエッジ検出およびマスク精密化（例: Mask Edge Snap ブロック）前の前処理用に設計されています。その他の操作はすべて標準的な形態学的定義に従います。。
* 出力
  * `image` ([`image`](/workflows/ja/gaido/developer-guide/kinds/image.md)): ワークフロー内の画像。

</details>

<details>

<summary>JSON 定義の例</summary>

```json
{
	    "name": "<your_step_name_here>",
	    "type": "roboflow_core/morphological_transformation@v2",
	    "image": "$inputs.image",
	    "kernel_size": "5",
	    "operation": "クロージング"
	}
```

</details>

## v1

設定可能な操作（収縮、膨張、オープニング、クロージング、グラディエント、トップハット、ブラックハット）を使用して画像に形態学的変換を適用し、オブジェクトの形状の変更、ノイズ除去、穴埋め、エッジ検出を行い、バイナリ画像またはグレースケール画像から特徴を抽出します。これは、画像処理、ノイズ除去、特徴抽出のワークフローに役立ちます。

## このブロックの仕組み

このブロックは、構造要素（カーネル）を使用して画像に形態学的変換を適用し、オブジェクトの形状を変更して特徴を抽出します。このブロックは次のとおりです:

1. 変換する入力画像を受け取ります（カラー画像は自動的にグレースケールに変換されます）
2. 画像がカラー形式の場合はグレースケールに変換します（形態学的操作は単一チャンネル画像で動作します）
3. 指定された kernel\_size の正方形の構造要素（カーネル）を作成します:
   * (kernel\_size, kernel\_size) の次元を持つ 1 の正方行列を作成します
   * カーネルは、形態学的操作で使用される近傍領域を定義します
   * 大きいカーネルはより広い領域に影響し、小さいカーネルはより狭い領域に影響します
4. 選択した形態学的操作を適用します:

   **収縮の場合:**

   * オブジェクトの境界からピクセルを削除してオブジェクトを縮小します
   * 各ピクセルを、そのカーネル近傍内の最小値に置き換えます
   * オブジェクトを細くし、小さな突起を除去します
   * 接触しているオブジェクトの分離や、小さなノイズの除去に役立ちます

   **膨張の場合:**

   * オブジェクトの境界にピクセルを追加してオブジェクトを拡張します
   * 各ピクセルを、そのカーネル近傍内の最大値に置き換えます
   * オブジェクトを太くし、小さな穴を埋めます
   * 近接するオブジェクトの接続や、隙間の充填に役立ちます

   **オープニングの場合（収縮の後に膨張）:**

   * まず画像に収縮を行い、その後膨張します
   * 小さなノイズを除去し、接触しているオブジェクトを分離します
   * 小さなディテールを取り除きながら、大きなオブジェクトは保持します
   * ノイズ除去やオブジェクト分離に役立ちます

   **クロージングの場合（膨張の後に収縮）:**

   * まず画像に膨張を行い、その後収縮します
   * 小さな穴を埋め、近接するオブジェクトを接続します
   * 隙間を埋めながらオブジェクトの形状を保持します
   * 穴埋めや断片化したオブジェクトの接続に役立ちます

   **グラディエントの場合（膨張から収縮を引く）:**

   * 膨張後の画像と収縮後の画像の差を計算します
   * オブジェクトの境界とエッジを強調します
   * オブジェクトの輪郭を示すアウトライン効果を作成します
   * エッジ検出や境界抽出に役立ちます

   **トップハットの場合（入力からオープニングを引く）:**

   * 元画像とそのオープニングとの差を計算します
   * オープニングで除去された小さな明るいディテールを強調します
   * カーネルより小さい明るい特徴を強調します
   * 小さな明るいオブジェクトやディテールの検出に役立ちます

   **ブラックハットの場合（クロージングから入力を引く）:**

   * クロージング後の画像と元画像との差を計算します
   * クロージングで埋められた小さな暗いディテールを強調します
   * カーネルより小さい暗い特徴を強調します
   * 小さな暗いオブジェクトや穴の検出に役立ちます
5. 画像の構造とメタデータを保持します
6. 形態学的変換後の画像を返します

形態学的操作は、構造要素（カーネル）を使用して画像構造を探索および変更します。kernel\_size は変換のスケールを制御します。大きいカーネルはより広い領域に影響し、より顕著な効果をもたらします。基本操作（収縮、膨張）はオブジェクトサイズを変更し、複合操作（オープニング、クロージング）はノイズ除去と隙間埋めの効果を組み合わせ、派生操作（グラディエント、トップハット、ブラックハット）は特定の特徴を抽出します。これらの操作は、オブジェクト境界が明確に定義されたバイナリ画像や高コントラストのグレースケール画像で最も効果的に機能します。

## 一般的な使用例

* **ノイズ除去**: バイナリ画像またはグレースケール画像から小さなノイズやアーティファクトを除去します（例: 塩胡椒ノイズの除去、小さなアーティファクトの排除、しきい値処理後の画像の整形）。ノイズ除去ワークフローを可能にします
* **オブジェクト分離**: 画像内の接触または重なり合ったオブジェクトを分離します（例: 接触しているオブジェクトを分離、接続された領域を分割、個々のオブジェクトを分離）。オブジェクト分離ワークフローを可能にします
* **穴埋め**: オブジェクト内の小さな穴や隙間を埋めます（例: オブジェクト内の穴を埋める、形状の隙間を閉じる、断片化したオブジェクトを補完する）。穴埋めワークフローを可能にします
* **エッジ検出**: 形態学的グラディエントを使用してオブジェクトの境界とエッジを検出します（例: オブジェクトのエッジを見つける、境界を抽出する、オブジェクトの輪郭を検出する）。形態学的エッジ検出ワークフローを可能にします
* **特徴抽出**: トップハットで小さな明るい対象を検出したり、ブラックハットで小さな暗い対象を見つけたりして、小さな明るい/暗いオブジェクトなどの特定の特徴を抽出します。特徴抽出ワークフローを可能にします
* **画像前処理**: しきい値処理済みの画像の整形、輪郭検出のための画像準備、解析用の前処理など、バイナリ画像またはグレースケール画像を次段階の処理に備えます。形態学的前処理ワークフローを可能にします

## 他のブロックへの接続

このブロックは画像を受け取り、形態学的変換後の画像を生成します:

* **画像のしきい値処理ブロックの後で** しきい値処理されたバイナリ画像を整形するために（例: しきい値処理後の画像からノイズを除去、バイナリ画像の穴を埋める、しきい値処理後の画像でオブジェクトを分離する）。しきい値処理から形態学へのワークフローを可能にします
* **前処理ブロックの後に** 他の前処理の後に形態学的操作を適用するために（例: フィルタリング後に形態学処理を適用、しきい値処理後に整形、強調後に処理）。多段階前処理ワークフローを可能にします
* **輪郭検出ブロックの前** 輪郭検出のために画像を準備するために（例: 輪郭検出前に画像を整形、輪郭を見つける前に穴を埋める、輪郭解析前にオブジェクトを分離する）。形態学から輪郭へのワークフローを可能にします
* **分析ブロックの前** バイナリ画像またはグレースケール画像を処理するために（例: 整形済み画像の解析、分離されたオブジェクトの処理、形態学的処理済み画像の利用）。形態学的解析ワークフローを可能にします
* **可視化ブロックの前** : 形態学的変換後の画像を表示するために（例: 整形済み画像の可視化、処理結果の表示、変換効果の表示）。形態学的可視化ワークフローを可能にします
* **画像処理パイプライン内で** 形態学的操作がより大きな処理チェーンの一部である場合（例: パイプラインで画像を整形、多段階ワークフローで形態学処理を適用、変換チェーンで画像を処理）。形態学的処理パイプラインワークフローを可能にします

## 要件

このブロックは単一チャンネル（グレースケール）画像で動作します。カラー画像は処理前に自動的にグレースケールへ変換されます。形態学的操作は、オブジェクト境界が明確に定義されたバイナリ画像または高コントラストのグレースケール画像で最も効果的に機能します。最適な結果を得るには、しきい値処理済みのバイナリ画像または高コントラストのグレースケール画像を入力として使用してください。

### 型識別子

ステップで次の識別子を使用してください `"type"` フィールド： `roboflow_core/morphological_transformation@v1` ワークフローにこのブロックをステップとして追加するには。

### プロパティ

| **名前**    | **型** | **説明**                                                                                                                                                                                                                                                                                                                                                                                                                                                                       | 参照 |
| --------- | ----- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -- |
| `name`    | `str` | このステップの一意の識別子を入力してください。                                                                                                                                                                                                                                                                                                                                                                                                                                                      | ❌  |
| `カーネルサイズ` | `整数`  | 形態学的操作に使用する正方形の構造要素（カーネル）のサイズです。正の整数でなければなりません。カーネルは (kernel\_size, kernel\_size) の次元を持つ 1 の正方行列です。値が大きいほど大きなカーネルになり、より広い領域に影響して、より顕著な効果を生みます。値が小さいほど小さなカーネルになり、より狭い領域に影響して、より穏やかな効果を生みます。一般的な値は 3〜15 の範囲です。細かな操作や小さなオブジェクトには小さい値（3〜5）、一般用途には中程度の値（5〜9）、粗い操作や大きなオブジェクトには大きい値（11〜15）を使います。デフォルトは 5 で、バランスが良好です。オブジェクトのサイズと望ましい変換スケールに応じて調整してください。。                                                                                                                            | ✅  |
| `操作`      | `str` | 適用する形態学的操作の種類です。'Erosion' は境界ピクセルを削除してオブジェクトを縮小し（オブジェクトを分離し、ノイズを除去します）、'Dilation' は境界ピクセルを追加してオブジェクトを拡張し（オブジェクトを接続し、穴を埋めます）、'Opening'（収縮の後に膨張）はノイズを除去してオブジェクトを分離し、'Closing'（デフォルト、膨張の後に収縮）は穴を埋めてオブジェクトを接続し、'Gradient'（膨張から収縮を引く）はオブジェクトの境界/エッジを見つけ、'Top Hat'（入力からオープニングを引く）は小さな明るいディテールを検出し、または 'Black Hat'（クロージングから入力を引く）は小さな暗いディテールを検出します。デフォルトは 'Closing' で、穴埋めによく使用されます。目的に応じて選択してください。サイズ変更には収縮/膨張、ノイズ除去と隙間埋めにはオープニング/クロージング、エッジ検出にはグラディエント、特徴抽出にはトップハット/ブラックハットを使います。。 | ✅  |

この **参照** 列は、で利用可能な動的値を使ってプロパティをパラメータ化できる可能性を示します `ワークフロー` 実行時。参照 *バインディング* 詳細は。

### 入力と出力のバインディング

利用可能な接続は、そのバインディング種別によって異なります。どのバインディング種別が `形態学的変換` のバージョン `v1` あるか確認してください。

<details>

<summary>入力と出力のバインディング</summary>

* 入力
  * `image` ([*`image`*](/workflows/ja/gaido/developer-guide/kinds/image.md)): 形態学的変換を適用する入力画像です。カラー画像は処理前に自動的にグレースケールへ変換されます（形態学的操作は単一チャンネル画像で動作します）。オブジェクト境界が明確に定義されたバイナリ画像または高コントラストのグレースケール画像で最も効果的に機能します。しきい値処理済みのバイナリ画像が最適な結果をもたらします。形態学的変換後の画像は、選択した操作に応じて、オブジェクト形状の変更、ノイズ除去、穴埋め、または特徴抽出が行われます。元画像のメタデータは出力に保持されます。。
  * `カーネルサイズ` ([*`整数`*](/workflows/ja/gaido/developer-guide/kinds/integer.md)): 形態学的操作に使用する正方形の構造要素（カーネル）のサイズです。正の整数でなければなりません。カーネルは (kernel\_size, kernel\_size) の次元を持つ 1 の正方行列です。値が大きいほど大きなカーネルになり、より広い領域に影響して、より顕著な効果を生みます。値が小さいほど小さなカーネルになり、より狭い領域に影響して、より穏やかな効果を生みます。一般的な値は 3〜15 の範囲です。細かな操作や小さなオブジェクトには小さい値（3〜5）、一般用途には中程度の値（5〜9）、粗い操作や大きなオブジェクトには大きい値（11〜15）を使います。デフォルトは 5 で、バランスが良好です。オブジェクトのサイズと望ましい変換スケールに応じて調整してください。。
  * `操作` ([*`string`*](/workflows/ja/gaido/developer-guide/kinds/string.md)): 適用する形態学的操作の種類です。'Erosion' は境界ピクセルを削除してオブジェクトを縮小し（オブジェクトを分離し、ノイズを除去します）、'Dilation' は境界ピクセルを追加してオブジェクトを拡張し（オブジェクトを接続し、穴を埋めます）、'Opening'（収縮の後に膨張）はノイズを除去してオブジェクトを分離し、'Closing'（デフォルト、膨張の後に収縮）は穴を埋めてオブジェクトを接続し、'Gradient'（膨張から収縮を引く）はオブジェクトの境界/エッジを見つけ、'Top Hat'（入力からオープニングを引く）は小さな明るいディテールを検出し、または 'Black Hat'（クロージングから入力を引く）は小さな暗いディテールを検出します。デフォルトは 'Closing' で、穴埋めによく使用されます。目的に応じて選択してください。サイズ変更には収縮/膨張、ノイズ除去と隙間埋めにはオープニング/クロージング、エッジ検出にはグラディエント、特徴抽出にはトップハット/ブラックハットを使います。。
* 出力
  * `image` ([`image`](/workflows/ja/gaido/developer-guide/kinds/image.md)): ワークフロー内の画像。

</details>

<details>

<summary>JSON 定義の例</summary>

```json
{
	    "name": "<your_step_name_here>",
	    "type": "roboflow_core/morphological_transformation@v1",
	    "image": "$inputs.image",
	    "kernel_size": "5",
	    "operation": "クロージング"
	}
```

</details>
