# ScaleImage

ScaleImage 関数は、入力画像または対象領域 (ROI) のピクセルを再サンプリングして、縮小または拡大し、回転または折り曲げの行われていない状態の画像を生成します。この関数は、再サンプリングした画像を In-Sight スプレッドシートの左上隅に表示します。

## ScaleImage の入力

パラメータ | 説明
画像 | このパラメータは、画像データ構造体を含むスプレッドシートセルのセル参照を使用する必要があります。デフォルトでは、このパラメータは、 関数によって返された画像データ構造体を含むセル A0 を参照しています。また、このパラメータは、ビジョンツールの画像フィルタ関数によって返された、その他の画像データ構造体も参照できます。
フィクスチャ | Fixture入力、またはビジョンツール関数の画像座標系の出力に関連する対象領域 (ROI) を定義します。フィクスチャに関連する ROI を設定すると、フィクスチャが回転または移動した場合に、フィクスチャに対応して ROI を確実に回転または移動できます。 デフォルト設定は画像の左上隅で、(0, 0, 0) になります。
X | 画像座標での X オフセット。
Y | 画像座標での Y オフセット。
角度 | 画像座標系での画像の X 軸からの回転 (時計回り +/-360 度)。
領域 | これは対象領域 (ROI) とも呼ばれ、解析の対象となる画像の領域を表します。[領域] パラメータをダブルクリックすると、変換と回転が可能な対話型グラフィックスモードを作成できます。このパラメータを選択して、プロパティシートの [ジョブの編集] ツールバーにある [領域の最大化] ボタンを押すと、画像全体が対象になるように領域が自動的に拡張されます。
X | フィクスチャ座標での原点の X オフセット
Y | フィクスチャ座標での原点の Y オフセット
幅 | 領域の X 軸に沿った寸法
高さ | 領域の Y 軸に沿った寸法
角度 | フィクスチャ座標での角度
カーブ | 領域の X 軸と反対側の境界線との間の角度変位
X スケール | 領域の X 方向の割合を指定します (10 ～ 1000、デフォルト = 50)。 注: 100 ～ 1000 の値はアップサンプリングを指定します。例えば、スケール比の指定値が両方とも 200 である場合、再サンプリング後の画像は指定された領域の 2 倍のサイズになります。
Y スケール | 領域の Y 方向の割合を指定します (10 ～ 1000、デフォルト = 50)。 注: 100 ～ 1000 の値はアップサンプリングを指定します。例えば、スケール比の指定値が両方とも 200 である場合、再サンプリング後の画像は指定された領域の 2 倍のサイズになります。
表示 X | 左上隅を基準に、再スケーリングされた画像を表示する x 座標 (デフォルト = 0) を指定します。 注: 値 -1 を指定すると、スケーリングされた画像が入力画像と同じ X 座標に配置されます。 取り込んだ画像には、この関数で指定した開始 X 座標が使用されます。そのため、ScaleImage 関数の [表示 X] および [表示 Y] パラメータを 0,0 に設定すると、画像が部分的に取り込まれた場合、ScaleImage 関数は取り込んだ画像の上に出力結果を表示します。 他のビジョンツール (例: Filter 関数などの画像フィルタツール) で出力された画像については、入力画像を定義する X 座標が使用されます。例えば、PointFilter 関数を X/Y 座標 100,100 に定義すると、パラメータに -1 が設定された参照元の ScaleImage 関数は X 座標 100 に表示されます。
表示 Y | 左上隅を基準に、再スケーリングされた画像を表示する y 座標 (デフォルト = 0) を指定します。
表示 | 画像の上に表示するグラフィックスオーバーレイを指定します。
0 = 非表示 (デフォルト) | ScaleImage 関数を含んでいるセルがスプレッドシート上でハイライトされている場合を除き、入力領域境界と再サンプリングされた画像は表示されません。
1 = 結果のグラフィックスのみ | 再サンプリングされた画像が常に表示されます。
2 = 入力のグラフィックスのみ | 入力領域境界が常に表示されます。

## ScaleImage の出力

戻り値 | 処理済みの画像を含んでいる画像データ構造体。入力パラメータが無効であれば #ERR を返します。

## ScaleImage 関数の例

この例では、入力画像の対象物はボトルです。この例の目的は、ボトルのサイズを 50% に縮小することです。

In-Sight スプレッドシートに関数を挿入した後、プロパティシートで「領域」という単語をダブルクリックして ROI を定義します。画像の上に赤い ROI ボックスが現れます。カーソルを使用してボックスを移動しサイズを調整したら、[ジョブの編集] ツールバーの [OK] ボタンをクリックして選択を確定し、プロパティシートに戻ります (Enter キーを押すか、ROI 内をダブルクリックしても、選択を確定できます)。

[X スケール] フィールドと [Y スケール] フィールドにどちらも「50」と入力し、その他のパラメータについてはデフォルト設定を受け入れ、プロパティシートで [OK] をクリックしてこの例の設定を完了し、関数を入力画像に適用します。

下の図は、50% に縮小されたボトルの画像です。

ユーザは、「折り曲げ」または「回転」が行われていない対象物に対しても ScaleImage 関数を使用することができます。これにより、処理された出力画像をほかのツールで容易に参照することができます。次の例では、対象物はわずかにカーブした線分です。オーバレイは削除されて表示されています (削除は、[表示] メニューの [オーバレイ] をクリックして行います)。また、入力画像と出力画像の両方を同じビューに簡単に並べて表示できるように、線分のサイズも 50% に縮小されます。

関数を挿入した後、ROI を定義し、プロパティシートで [X スケール] および [Y スケール] フィールドに「50」を指定して (ボトルの例で前述のとおり)、対象物が直線になるまで [領域] パラメータの下の [角度] および [カーブ] フィールドの値を徐々に増やしていきます。その他のパラメータについてはデフォルト設定を受け入れ、プロパティシートで [OK] をクリックしてこの例の設定を完了し、関数を入力画像に適用します。下の図は、中央が曲がった対象物の画像で、左上隅が縮小されて「曲がっていない」バージョンの画像です。

この例では、カーブした線分を直線にするために、角度 17.390 およびカーブ -36.389 が必要でした。