> 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/image-preprocessing.md).

# 画像前処理

画像に幾何学的変換を適用します。指定サイズへのリサイズ（縦横比維持）、指定角度での回転（時計回りまたは反時計回り）、または上下反転、左右反転、もしくはその両方を行い、モデル入力準備、画像の向き補正、幾何学的画像操作ワークフローのための柔軟な画像前処理を提供します。

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

このブロックは、選択された task\_type に基づいて、入力画像に 1 つの幾何学的変換操作（リサイズ、回転、または反転）を適用します。このブロックは、

1. 入力画像を受け取り、1 つの変換タスク（リサイズ、回転、または反転）を選択します
2. タスク固有のパラメータを検証します（リサイズでは width/height、回転では rotation\_degrees、反転では flip\_type）
3. 選択された変換を適用します：

   **リサイズタスクの場合：**

   * width と height が正の整数（0 より大きい）であることを検証します
   * 縦横比の維持をサポートします。width のみ、または height のみが指定された場合、元の縦横比を維持するために不足している次元を計算します
   * width と height の両方が指定された場合、正確なサイズにリサイズします（縦横比が崩れる可能性があります）
   * 高品質なダウンサンプリングのために OpenCV の INTER\_AREA 補間を使用します
   * 指定されたサイズのリサイズ済み画像を返します

   **回転タスクの場合：**

   * rotation\_degrees が -360 度から 360 度の範囲内であることを検証します
   * 正の値は時計回りに回転し、負の値は反時計回りに回転します
   * 画像中心を基準に回転行列を計算します
   * 回転後の画像を収めるためにキャンバスサイズを自動調整します（切り抜きは行いません）
   * 滑らかな回転のために、OpenCV の warpAffine をバイリニア補間で使用します
   * 回転後の画像全体が収まるサイズのキャンバスを持つ回転済み画像を返します

   **反転タスクの場合：**

   * flip\_type が "vertical"、"horizontal"、または "both" であることを検証します
   * 上下反転：画像を上下に反転します（水平軸に沿って鏡像化します）
   * 左右反転：画像を左右に反転します（垂直軸に沿って鏡像化します）
   * 両方：上下反転と左右反転を同時に適用します（180 度回転と同等）
   * 効率的な鏡像化のために OpenCV の flip 関数を使用します
   * 入力と同じサイズの反転済み画像を返します
4. 元の画像からメタデータ（親メタデータ、画像プロパティ）を保持します
5. 元の画像のメタデータ構造を維持したまま変換後の画像を返します

このブロックは一度に 1 つの変換を実行します。task\_type を通じて resize、rotate、または flip を選択してください。各変換は独立して適用され、クリーンな出力を生成します。Resize は柔軟な縦横比処理をサポートし、rotation は切り抜きを防ぐためにキャンバスサイズを自動調整し、flip 操作は異なる軸に沿った効率的な鏡像化を提供します。これらの変換は、効率的で高品質な幾何学的画像操作のために OpenCV を使用します。

## 一般的な使用例

* **モデル入力準備**: 画像をモデル入力要件に合わせてリサイズします（例：物体検出モデル向けに画像を特定サイズへリサイズ、分類モデル入力向けに画像サイズを調整、一貫したモデル処理のために画像寸法を正規化）、適切なモデル入力形式を可能にします
* **画像の向き補正**: 向きの問題を修正するために画像を回転します（例：誤った向きで撮影された画像を回転、カメラの回転を補正、適切な表示のために画像の向きを調整）、画像向きワークフローを可能にします
* **データ拡張**: データ拡張のために幾何学的変換を適用します（例：拡張のために画像を左右反転、学習データの多様性のために画像を回転、データセットの多様性を高めるために変換を適用）、データ拡張ワークフローを可能にします
* **画像表示準備**: 表示または प्रस्त示の目的で画像を変換します（例：鏡像効果のために画像を反転、表示サイズに合わせて画像をリサイズ、正しい閲覧向きのために画像を回転）、画像 प्रस्त示ワークフローを可能にします
* **ワークフロー画像の標準化**: ワークフロー入力全体で画像のサイズや向きを標準化します（例：すべての画像を一貫したサイズにリサイズ、画像の向きを正規化、均一な処理のために画像を準備）、画像標準化ワークフローを可能にします
* **後続ブロック向けの画像フォーマット**: 特定のサイズや向きを必要とするブロック向けに画像を準備します（例：検出モデルの前にリサイズ、適切な処理のために回転、他のブロックとの互換性のために反転）、画像準備ワークフローを可能にします

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

このブロックは画像を受け取り、変換後の画像を生成します：

* **画像入力ブロックの後に** 以降の処理の前に画像を前処理するため（例：入力画像のリサイズ、画像の向き補正、ワークフロー処理用の画像準備）、画像前処理ワークフローを可能にします
* **検出または分類モデルの前に** モデル要件に合わせて画像を整形するため（例：モデル入力サイズへのリサイズ、正確な検出のための向き調整、モデル処理用の画像準備）、モデル互換の画像準備を可能にします
* **クロップブロックの前** 切り抜き前に画像を準備するため（例：切り抜き前のリサイズ、領域抽出前の回転、切り抜き前の向き調整）、切り抜き前の画像準備を可能にします
* **可視化ブロックの前** 表示用に画像を準備するため（例：表示用のリサイズ、適切な閲覧のための回転、プレゼンテーション用の反転）、画像表示準備ワークフローを可能にします
* **画像処理パイプライン内で** 幾何学的変換が必要な場合（例：多段階パイプラインでのリサイズ、処理ワークフローでの回転、変換チェーンでの反転）、幾何学的変換パイプラインを可能にします
* **他の変換ブロックの後** 追加の幾何学的操作を適用するため（例：切り抜き後のリサイズ、他の変換後の回転、処理後の反転）、多段階の幾何学的変換ワークフローを可能にします

### 型識別子

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

### プロパティ

| **名前**             | **型** | **説明**                                                                                                                                                                                                                                                     | 参照 |
| ------------------ | ----- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -- |
| `name`             | `str` | このステップの一意の識別子を入力してください。                                                                                                                                                                                                                                    | ❌  |
| `task_type`        | `str` | 画像に適用する幾何学的変換の種類：画像サイズを変更する 'resize'（width/height が必要）、指定角度で画像を回転する 'rotate'（rotation\_degrees が必要）、または画像を軸に沿って鏡像化する 'flip'（flip\_type が必要）。1 回のブロック実行で適用される変換は 1 つのみです。前処理のニーズに応じて適切なタスクタイプを選択してください。。                                                    | ❌  |
| `幅`                | `整数`  | リサイズ用のターゲット幅（ピクセル）。task\_type が 'resize' の場合に必須です。正の整数（0 より大きい）でなければなりません。width のみが指定され（height が None）、height が自動計算されて縦横比が維持されます。width と height の両方が指定された場合、画像は正確なサイズにリサイズされます（縦横比が崩れる可能性があります）。デフォルトは 640 ピクセルです。モデル入力や表示要件に合わせて画像を特定サイズにリサイズするために使用します。。 | ✅  |
| `高さ`               | `整数`  | リサイズ用のターゲット高さ（ピクセル）。task\_type が 'resize' の場合に必須です。正の整数（0 より大きい）でなければなりません。height のみが指定され（width が None）、width が自動計算されて縦横比が維持されます。width と height の両方が指定された場合、画像は正確なサイズにリサイズされます（縦横比が崩れる可能性があります）。デフォルトは 640 ピクセルです。モデル入力や表示要件に合わせて画像を特定サイズにリサイズするために使用します。。 | ✅  |
| `rotation_degrees` | `整数`  | 度単位の回転角度。task\_type が 'rotate' の場合に必須です。-360 度から 360 度の範囲でなければなりません。正の値は画像を時計回りに回転し、負の値は反時計回りに回転します。回転は画像中心を基準に行われ、キャンバスサイズは回転後の画像全体を収めるように自動調整されます（切り抜きは発生しません）。例えば、90 は 90 度時計回り、-90 は 90 度反時計回り、180 は 180 度回転を行います。デフォルトは 90 度です。。                      | ✅  |
| `flip_type`        | `str` | 適用する反転操作の種類。task\_type が 'flip' の場合に必須です。オプション：'vertical' は画像を上下反転します（水平軸に沿って鏡像化、上が下になります）、'horizontal' は左右反転します（垂直軸に沿って鏡像化、左が右になります）、'both' は上下反転と左右反転を同時に適用します（180 度回転と同等）。反転後も画像サイズは変わりません。デフォルトは 'vertical' です。画像の鏡像化やデータ拡張に使用します。。                    | ✅  |

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

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

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

<details>

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

* 入力
  * `image` ([*`image`*](/workflows/ja/gaido/developer-guide/kinds/image.md)): 変換する入力画像。選択された task\_type に基づいて、1 つの幾何学的変換（リサイズ、回転、または反転）が画像に適用されます。入力、前のワークフローステップ、または切り抜き出力からの画像をサポートします。出力画像は元の画像のメタデータ構造を維持します。。
  * `幅` ([*`整数`*](/workflows/ja/gaido/developer-guide/kinds/integer.md)): リサイズ用のターゲット幅（ピクセル）。task\_type が 'resize' の場合に必須です。正の整数（0 より大きい）でなければなりません。width のみが指定され（height が None）、height が自動計算されて縦横比が維持されます。width と height の両方が指定された場合、画像は正確なサイズにリサイズされます（縦横比が崩れる可能性があります）。デフォルトは 640 ピクセルです。モデル入力や表示要件に合わせて画像を特定サイズにリサイズするために使用します。。
  * `高さ` ([*`整数`*](/workflows/ja/gaido/developer-guide/kinds/integer.md)): リサイズ用のターゲット高さ（ピクセル）。task\_type が 'resize' の場合に必須です。正の整数（0 より大きい）でなければなりません。height のみが指定され（width が None）、width が自動計算されて縦横比が維持されます。width と height の両方が指定された場合、画像は正確なサイズにリサイズされます（縦横比が崩れる可能性があります）。デフォルトは 640 ピクセルです。モデル入力や表示要件に合わせて画像を特定サイズにリサイズするために使用します。。
  * `rotation_degrees` ([*`整数`*](/workflows/ja/gaido/developer-guide/kinds/integer.md)): 度単位の回転角度。task\_type が 'rotate' の場合に必須です。-360 度から 360 度の範囲でなければなりません。正の値は画像を時計回りに回転し、負の値は反時計回りに回転します。回転は画像中心を基準に行われ、キャンバスサイズは回転後の画像全体を収めるように自動調整されます（切り抜きは発生しません）。例えば、90 は 90 度時計回り、-90 は 90 度反時計回り、180 は 180 度回転を行います。デフォルトは 90 度です。。
  * `flip_type` ([*`string`*](/workflows/ja/gaido/developer-guide/kinds/string.md)): 適用する反転操作の種類。task\_type が 'flip' の場合に必須です。オプション：'vertical' は画像を上下反転します（水平軸に沿って鏡像化、上が下になります）、'horizontal' は左右反転します（垂直軸に沿って鏡像化、左が右になります）、'both' は上下反転と左右反転を同時に適用します（180 度回転と同等）。反転後も画像サイズは変わりません。デフォルトは 'vertical' です。画像の鏡像化やデータ拡張に使用します。。
* 出力
  * `image` ([`image`](/workflows/ja/gaido/developer-guide/kinds/image.md)): ワークフロー内の画像。

</details>

<details>

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

```json
{
	    "name": "<your_step_name_here>",
	    "type": "roboflow_core/image_preprocessing@v1",
	    "image": "$inputs.image",
	    "task_type": "<block_does_not_provide_example>",
	    "width": 640,
	    "height": 640,
	    "rotation_degrees": 90,
	    "flip_type": "vertical"
	}
```

</details>
