> ## Documentation Index
> Fetch the complete documentation index at: https://docs.abbyy.com/llms.txt
> Use this file to discover all available pages before exploring further.

# IEditablePictureObject

> ABBYY FlexiCapture スクリプトの IEditablePictureObject: crop、deskew、despeckle、binarize、contrast filter、stamp removal の各メソッドを使用してページ画像を編集します。

<div id="what-it-does">
  ## 機能
</div>

ABBYY FlexiCapture で編集可能な画像を表します。このオブジェクトは、[IPictureObject](/ja/flexi-capture/appendix/scripts/ipictureobject) インターフェイスを拡張したものです。

<Note>
  このオブジェクトは、Web Verification Station でローカルにルールをチェックする場合は使用できません。
</Note>

<div id="methods">
  ## メソッド
</div>

| メソッド                                                                                           | 説明                                                                                                                                     | 対応する画像の色             |
| ---------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- | -------------------- |
| `ApplyContourSmoother( params: IContourSmootherParams )`                                       | 画像に輪郭平滑化を適用します。                                                                                                                        | グレースケール画像およびカラー画像用   |
| `ApplyLocalContrastFilter( params: ILocalContrastParams )`                                     | 画像に非適応型コントラストフィルターを適用します。                                                                                                              | グレースケール画像およびカラー画像に対応 |
| `ApplyMultiscaleLocalContrastFilter()`                                                         | 画像に適応型コントラストフィルターを適用します。このメソッドを使用すると、画像をスキャン画像に変換できます。                                                                                 | グレースケール画像およびカラー画像に対応 |
| `ApplyShadowsHighlightsFilter( params: IShadowsHighlightsParams )`                             | 画像にシャドウハイライトを適用します。                                                                                                                    | グレースケール画像およびカラー画像に対応 |
| `ApplySigmaFilter()`                                                                           | 画像からデジタルノイズを除去します。                                                                                                                     | すべての画像               |
| `AutoCrop( [optional] type: string )`                                                          | 画像を自動的に切り抜きます。`type` パラメーターに指定できる値は `Photo`、`Scan`、`Generic` です。既定値は `Generic` です。                                                     | すべての画像               |
| `Binarize( params: IBinarizationParams )`                                                      | 画像内の色を白黒に変換します。`ConvertToBW` メソッドとは異なるプロパティ セットを使用します。                                                                                 | グレースケール画像およびカラー画像    |
| `ConvertToBW( [optional] threshold: int )`                                                     | 画像を白黒に変換します。明るさのしきい値を指定できます。しきい値より大きい値は白、小さい値は黒として扱われます。明るさのしきい値には `0` から `255` までの値を指定できます。                                           | すべての画像               |
| `CreateBinarizationParams(): IBinarizationParams`                                              | `Binarize` メソッドのパラメーターを含むオブジェクトを作成します。                                                                                                 | すべての画像に対応            |
| `CreateContourSmootherParams(): IContourSmootherParams`                                        | 輪郭平滑化処理用のパラメーターを含むオブジェクトを作成します。                                                                                                        | すべての画像に対応            |
| `CreateLocalContrastFilterParams(): ILocalContrastParams`                                      | コントラスト調整アクション用のパラメーターを含むオブジェクトを作成します。フィルター内のパラメーターはデフォルト値に設定されます。                                                                      | すべての画像に対応            |
| `CreateShadowsHighlightsFilterParams(): IShadowsHighlightsParams`                              | シャドウとハイライトの効果を変更するアクション用のパラメーターを持つ object を作成します。                                                                                      | すべての画像               |
| `Crop( rect: string )`                                                                         | 指定した矩形の外側を切り取ります。                                                                                                                      | すべての画像               |
| `CutOut( rect: string ): IEditablePictureObject`                                               | 画像から指定した矩形領域を切り出し、その領域を返します。                                                                                                           | すべての画像               |
| `Deskew( [optional] byLines: bool, [optional] byBlackSquares: bool, [optional] byText: bool )` | 画像の傾きを補正します。傾きは、直線、黒い四角、またはテキストを基準に補正できます。既定では、`byText` パラメーターは `true` に設定されています。                                                      | すべての画像               |
| `Despeckle( [optional] garbageSize: int )`                                                     | 白黒画像のノイズを除去します。指定したサイズまでのごみを除去します。`garbageSize` パラメーターを指定しない場合、サイズは自動的に判定されます。                                                         | 白黒画像のみ               |
| `Erase( rectangle: string, [optional] red: int, [optional] green: int, [optional] blue: int )` | 画像上の領域を消去します。領域の消去に使用する色を指定できます。既定では黒が使用されます。                                                                                          | すべての画像               |
| `FlipHorizontal()`                                                                             | 画像を水平方向に反転します。                                                                                                                         | すべての画像               |
| `FlipVertical()`                                                                               | 画像を上下反転します。                                                                                                                            | すべての画像               |
| `FreeScale( newWidth: int, newHeight: int, newResolution: int )`                               | 新しい値に基づいてページのサイズを変更します。                                                                                                                | すべての画像               |
| `Invert( [optional] rectString: string )`                                                      | 画像を反転します。反転する矩形の座標を指定した文字列を指定できます。                                                                                                     | すべての画像               |
| `NewRectsArray(): IRects`                                                                      | 新しい矩形コレクションを作成します。[IRects](/ja/flexi-capture/appendix/scripts/irects) オブジェクトを返します。                                                     | カラー画像のみ              |
| `RemoveMotionBlur()`                                                                           | スキャン中の文書、カメラ、またはスキャナの動きによって生じるぶれを除去します。                                                                                                | すべての画像               |
| `RemoveStamps( color: TColorToFilter, rects: IRects )`                                         | 指定した色のスタンプやその他のマークを画像から削除します。詳細については、[画像から色付きのスタンプを削除する](#remove-color-stamps-from-an-image)を参照してください。                                 | カラー画像のみ              |
| `RemoveStampsExt( colorsToFilter: string )`                                                    | より多くの色を除去できる改良アルゴリズムを使用して、画像からカラーのスタンプやその他のマークを削除します。これは推奨されるメソッドです。詳細については、[追加のスタンプ色を削除する](#remove-additional-stamp-colors)を参照してください。 | カラー画像にのみ対応           |
| `Rotate( angle: int )`                                                                         | 画像を指定した角度まで時計回りに回転します。                                                                                                                 | すべての画像に対応            |
| `Scale( ratio: int )`                                                                          | 100%の基準サイズに対して、画像を拡大または縮小します。このメソッドは画像のピクセルサイズにのみ適用されます。画像の物理的なサイズは変わりません。                                                             | すべての画像               |

<Note>
  `CutOut` メソッドおよび `Crop` メソッドに渡す `rect` パラメーターは、`"[left, top, right, bottom]"` 形式の string です。この string を取得するには、任意の [IRect](/ja/flexi-capture/appendix/scripts/irect) オブジェクトの `ToString` メソッドを呼び出すか、[IFlexiCaptureTools](/ja/flexi-capture/appendix/scripts/iexportimagetools) (`FCTools`) の `Rect` メソッドを使用します。
</Note>

<div id="remove-color-stamps-from-an-image">
  ## 画像から色付きスタンプを削除する
</div>

`RemoveStamps` メソッドは、画像から指定した色のスタンプやその他のマークを削除します。このメソッドは、カラー画像でのみ機能します。

| Parameter | Type                                                  | Description           |
| --------- | ----------------------------------------------------- | --------------------- |
| `color`   | [TColorToFilter](/ja/flexi-capture/t-color-to-filter) | 削除するスタンプの色。           |
| `rects`   | [IRects](/ja/flexi-capture/appendix/scripts/irects)   | 削除するスタンプの矩形領域のコレクション。 |

次の [On User Command](/ja/flexi-capture/appendix/scripts-shell/user-command) イベント用のサンプル スクリプトは、すべてのページから赤いスタンプを削除します。ページ全体を対象にスタンプを検索します。

```csharp theme={null}
MainWindow.TaskWindow.OpenDocument( MainWindow.TaskWindow.EditorWindow.Document );
foreach (IPage page in MainWindow.TaskWindow.EditorWindow.Document.Pages)
{
    if (page.Picture.IsColor)
    {
        IEditablePictureObject editablePicture = page.Picture.CreateEditableCopy();
        IRects rects = editablePicture.NewRectsArray();
        rects.AddRect(0, 0, editablePicture.Width - 1, editablePicture.Height - 1); // ページ全体
        editablePicture.RemoveStamps(TColorToFilter.CTF_Red, rects);
        page.ReplaceImage(editablePicture);
    }
}
```

<div id="remove-additional-stamp-colors">
  ## 追加のスタンプ色を削除する
</div>

`RemoveStampsExt` メソッドは、画像から指定した色の色付きスタンプやその他のマークを削除します。`RemoveStamps` と似ていますが、より多くの色に対応した改良アルゴリズムを使用します。スタンプを削除する場合は、このメソッドの使用を推奨します。

`colorsToFilter` パラメーター (`string`) は、削除するスタンプの色を設定します。

* 次の文字列値を受け付けます: `Red`、`Green`、`Blue`、`Yellow`、`Orange`、`LightBlue`、`Purple` (大文字と小文字は区別されません) 。
* カンマ区切りで複数の値を指定できます。たとえば `"Red, Green"` のように指定します。
* 空の文字列 (`""`) を指定すると、プログラムに適切なスタンプ色を自動的に選択させることもできます。プログラムは、画像内で検出したスタンプのうち、許可された色値のいずれかに該当するものをすべて削除します。

次の [On User Command](/ja/flexi-capture/appendix/scripts-shell/user-command) イベント用のサンプル スクリプトは、すべてのページから赤と緑のスタンプを削除します。

```csharp theme={null}
foreach (IPage page in Document.Pages)
{
    if (page.Picture.IsColor)
    {
        IPictureObject picture = page.Picture;
        IEditablePictureObject editablePicture = picture.CreateEditableCopy();
        editablePicture.RemoveStampsExt("Red, Green");
        page.ReplaceImage(editablePicture);
    }
}
```

<div id="custom-processing-stage-examples">
  ## カスタム処理ステージの例
</div>

以下のスクリプトは、カスタム処理ステージで `IEditablePictureObject` のメソッドを使用する方法を示します。

<div id="apply-a-local-contrast-filter">
  ### 局所コントラストフィルターを適用する
</div>

このスクリプトは、局所コントラストフィルター用のパラメーターを持つオブジェクトを作成し、そのパラメーターを手動で設定して、画像にフィルターを適用します。

```csharp theme={null}
foreach( IPage page in Document.Pages )
{
    IPictureObject picture = page.Picture;
    IEditablePictureObject editablePicture = picture.CreateEditableCopy();
    // パラメーターを持つオブジェクトを作成する（パラメーターはデフォルト値で設定される）
    ILocalContrastParams localContrastParams = editablePicture.CreateLocalContrastFilterParams();
    // 後で値を変更するパラメーターを設定する
    localContrastParams.Radius = 7;
    localContrastParams.NoiseLevel = 200;
    // 画像にフィルターを適用する
    editablePicture.ApplyLocalContrastFilter( localContrastParams );
    // ページの画像を変更後の画像に置き換える
    page.ReplaceImage( editablePicture );
}
```

<div id="binarize-an-image-with-custom-parameters">
  ### カスタムパラメーターを使用した画像の二値化
</div>

このスクリプトは、`Binarize` メソッド用のパラメーターを含むオブジェクトを作成し、設定したパラメーターを使用して画像を白黒に変換します。

```csharp theme={null}
foreach ( IPage page in Document.Pages )
{
    IPictureObject picture = page.Picture;
    IEditablePictureObject editablePicture = picture.CreateEditableCopy();
    // パラメーターを持つオブジェクトを作成する（パラメーターはデフォルト値で設定される）
    IBinarizationParams binarizationParams =  editablePicture.CreateBinarizationParams();
    // true または false のパラメーターを設定する
    binarizationParams.SmoothTexture = false;
    editablePicture.Binarize( binarizationParams );
    page.ReplaceImage( editablePicture );
}
```

<div id="enhance-selected-pages-from-the-verification-station">
  ### Verification Stationで選択したページを補正する
</div>

このスクリプトは、選択したページのコントラストを高め、デジタルノイズを除去し、自動的に切り抜きを行い、ぼやけを軽減します。Verification Stationのオペレーターがこのスクリプトを実行します。

```csharp theme={null}
foreach( IPageItem pageItem in MainWindow.Selection.PageItems) {
    pageItem.TaskWindow.CloseEditorWindow();
    pageItem.TaskWindow.OpenDocument(  pageItem.DocumentItem.Document );
    IPage page = pageItem.Page;
    IEditablePictureObject editablePicture = page.Picture.CreateEditableCopy();
    // 画像の変換を適用する
    editablePicture.AutoCrop();
    editablePicture.ApplySigmaFilter();
    editablePicture.ApplyMultiscaleLocalContrastFilter();
    editablePicture.RemoveMotionBlur();
    // 元の文書画像を編集済み画像に置き換える
    page.ReplaceImage( editablePicture );
    pageItem.TaskWindow.CloseDocument(  pageItem.DocumentItem.Document );
}
```
