> 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/transformations/bounding-rectangle.md).

# 外接矩形

ポリゴンのセグメンテーションマスクの周囲に最小回転外接矩形を計算し、複雑なポリゴン形状を、ゾーン作成、領域の簡略化、検出されたオブジェクト形状に基づく矩形領域の近似のための向き情報を持つ簡略化された矩形バウンディングボックスに変換します。

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

このブロックは、ポリゴンマスクを含むインスタンスセグメンテーション予測を処理し、各検出に対して最小回転外接矩形（ポリゴンを囲める最小の矩形）を計算します。このブロックは次の処理を行います:

1. ポリゴンマスクを含むインスタンスセグメンテーション予測を受け取る（マスクが存在することを検証する）
2. 各検出のポリゴンマスクを個別に処理する
3. ポリゴンマスクから最大の輪郭を抽出する（複数輪郭のマスクは最大のものを選択して処理する）
4. OpenCV の minAreaRect を使用して最小回転外接矩形を計算する:
   * ポリゴンを完全に囲むことができる最小の回転矩形を見つける
   * 矩形の中心点、寸法（幅、高さ）、回転角を決定する
   * 回転矩形の4つの角の点を計算する
5. 検出のマスクを、計算された外接矩形に一致する矩形マスクに更新する（回転矩形ポリゴンをマスク形式に戻す）
6. 検出の軸平行バウンディングボックス（xyxy）を回転矩形のバウンディングボックスに更新する（回転矩形を軸平行ボックスに収める）
7. 検出データに追加の矩形メタデータを保存する:
   * 矩形の角の座標（回転矩形の点）
   * 矩形の幅と高さ（回転矩形の寸法）
   * 矩形の角度（度単位の回転角）
8. 処理済みのすべての検出を統合し、更新されたマスク、バウンディングボックス、および矩形メタデータとともに返す

このブロックは複雑なポリゴン形状を簡略化された矩形表現に変換し、回転角を通じて向き情報を保持します。これは、検出されたオブジェクト形状（例: スポーツフィールド、道路区画、マーキングされた領域）に基づいてゾーンや領域を作成し、それらを矩形近似に簡略化したい場合に特に有用です。最小回転矩形は、ポリゴンを最もコンパクトに表す矩形であり、面積を最小化するために角度が付くことがあります。

## 一般的な使用例

* **オブジェクト形状からのゾーン作成**: 検出されたポリゴン形状を、面積監視や分析のための矩形ゾーンに変換する（例: バスケットボールコートの検出からゾーンを作成する、道路標示から道路区画ゾーンを生成する、横断歩道の検出から矩形領域を作成する）ことで、複雑な形状からゾーンベースのワークフローを可能にする
* **領域の簡略化**: 複雑なポリゴン形状を、より扱いやすい矩形近似に簡略化する（例: 不規則なセグメンテーションマスクを矩形に簡略化する、複雑な形状を矩形領域に変換する、ポリゴン領域を矩形で近似する）ことで、簡略化された領域処理を可能にする
* **回転領域検出**: ポリゴン検出から回転した矩形領域を検出・抽出する（例: セグメンテーションから回転駐車区画を見つける、傾いた道路標示を矩形として検出する、回転したオブジェクトを矩形ゾーンとして抽出する）ことで、回転を考慮した領域抽出を可能にする
* **面積の近似**: ポリゴン領域をコンパクトな矩形バウンディングボックスで近似する（例: スポーツフィールドの面積を最小矩形で近似する、回転バウンディングボックスを使用して領域サイズを推定する、複雑な形状からコンパクトな矩形領域を計算する）ことで、矩形近似による面積推定を可能にする
* **形状の正規化**: ポリゴン形状を標準化された処理のために矩形表現へ正規化する（例: 一貫した分析のために検出形状を矩形に正規化する、ポリゴン領域を矩形形式に標準化する、さまざまな形状を統一された矩形領域に変換する）ことで、形状正規化ワークフローを可能にする
* **複数オブジェクトのゾーン抽出**: 複数の検出ポリゴンオブジェクトから矩形ゾーンを抽出する（例: 複数の道路区画検出からゾーンを作成する、複数のフィールド検出から矩形領域を生成する、さまざまなマーキング領域検出からゾーンを抽出する）ことで、複数オブジェクトのゾーン作成ワークフローを可能にする

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

このブロックは、ポリゴンマスクを含むインスタンスセグメンテーション予測を受け取り、矩形マスクとバウンディングボックスを持つ検出結果を生成します:

* **インスタンスセグメンテーションブロックの後** ゾーン作成や簡略化処理のためにポリゴンマスクを矩形バウンディングボックスへ変換し、複雑な形状から矩形ゾーンを生成できるようにするため
* **ゾーンベースのブロックの前** （例: Polygon Zone、Dynamic Zone）で、ゾーンベースのワークフローのために矩形領域を準備する（例: 簡略化された矩形からゾーンを作成する、ゾーン監視に矩形近似を使用する、矩形領域でゾーンワークフローを有効にする）ことで、簡略化された形状によるゾーンベースのワークフローを可能にする
* **フィルタリングブロックの後に** （例: Detections Filter）で、矩形に変換する前に特定のポリゴン検出のみを処理する（例: 矩形変換前にクラスで検出をフィルタリングする、矩形抽出のために特定のポリゴンタイプを選択する、ゾーン作成のためにフィルタリング済み検出を準備する）ことで、選択的な矩形抽出を可能にする
* **クロップブロックの前** ポリゴン検出から矩形領域を抽出するため（例: ポリゴン形状から回転した矩形領域を切り出す、複雑な検出から矩形領域を抽出する、ポリゴンから矩形のクロップ領域を準備する）ことで、矩形領域抽出を可能にする
* **可視化ブロックの前** 複雑なポリゴンの簡略化された矩形表現を表示するため（例: ポリゴンの矩形近似を可視化する、回転外接矩形を表示する、簡略化された矩形ゾーンを表示する）ことで、矩形の可視化出力を可能にする
* **分析ブロックの前** 複雑なポリゴンよりも矩形領域の方が適している処理に対して（例: ポリゴンの代わりに矩形ゾーンを分析する、簡略化された矩形領域を処理する、正規化された矩形形状を扱う）ことで、簡略化された領域分析ワークフローを可能にする

### 型識別子

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

### プロパティ

| **名前** | **型** | **説明**                  | 参照 |
| ------ | ----- | ----------------------- | -- |
| `name` | `str` | このステップの一意の識別子を入力してください。 | ❌  |

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

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

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

<details>

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

* 入力
  * `predictions` ([*`instance_segmentation_prediction`*](/workflows/ja/gaido/developer-guide/kinds/instance-segmentation-prediction.md)): ポリゴンマスクを含むインスタンスセグメンテーション予測。このブロックではマスクの存在が必須であり、マスクがない場合はエラーを発生します。各検出のポリゴンマスクは、最小回転外接矩形を計算するために処理されます。マスクには、矩形バウンディングボックスに変換したいポリゴン形状が含まれている必要があります。検出は個別に処理され、各マスクから最大の輪郭が抽出されます。このブロックは、更新されたマスク（矩形）、更新されたバウンディングボックス（回転矩形の軸平行ボックス）、および detection.data に保存された追加の矩形メタデータ（矩形座標、幅、高さ、角度）を含む検出結果を出力します。。
* 出力
  * `detections_with_rect` ([`instance_segmentation_prediction`](/workflows/ja/gaido/developer-guide/kinds/instance-segmentation-prediction.md)): 検出されたバウンディングボックスとセグメンテーションマスクを sv.Detections(...) オブジェクトの形式で持つ予測。

</details>

<details>

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

```json
{
	    "name": "<your_step_name_here>",
	    "type": "roboflow_core/bounding_rect@v1",
	    "predictions": "$segmentation.predictions"
	}
```

</details>
