ScaleImage

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

ScaleImage の入力パラメータ

Syntax:ScaleImage(画像,フィクスチャ.行,フィクスチャ.列,フィクスチャ.角度,領域.X,領域.Y,領域.高さ,領域.幅,領域.角度,領域.カーブ,スケールタイプ,X スケール,Y スケール,表示行,表示列,表示)

画像 このパラメータは、スプレッドシートで画像データ構造体を含むセルを参照する必要があります。デフォルトでは、このパラメータは、AcquireImage 画像データ構造体を含むセル A0 を参照しています。また、このパラメータは、ビジョンツールのグラフィックス関数によって返された、そのほかの画像データ構造体も参照できます。
フィクスチャ

フィクスチャ入力、またはビジョンツール関数の画像座標系の出力に関連する対象領域 (ROI) を定義します。フィクスチャに関連する ROI を設定すると、フィクスチャが回転または移動した場合に、フィクスチャに対応して ROI を確実に回転または移動できます。

デフォルト設定は画像の左上隅で、(0, 0, 0) になります。

画像座標での行オフセット。
画像座標での列オフセット
角度 画像座標系での方位角
領域

これは対象領域 (ROI) とも呼ばれ、解析の対象となる画像の領域を表します。変換および回転可能な矩形の画像領域を作成します。このパラメータを選択して、プロパティシートのツールバーにある [領域の最大化] ボタンを押すと、画像全体が対象になるように領域が自動的に拡張されます。

X フィクスチャ座標での原点の X オフセット
Y フィクスチャ座標での原点の Y オフセット
高さ 領域の X 軸に沿った寸法。
領域の Y 軸に沿った寸法。
角度 フィクスチャ座標での角度。
カーブ 領域の X 軸と反対側の境界線との間の角度変位。
スケールタイプ

ピクセルの再サンプリング方法を指定します。

0 = 補間 (デフォルト) 画像の再サンプリングのために、ピクセル領域の加重平均値の使用を指定します。

XY スケール

 

領域の (X, Y) 方向へのスケール比を指定します。

:  100 から 1000 の範囲に含まれる値はアップサンプリングを指定します。例えば、スケール比の指定値が両方とも 200 である場合、再サンプリング後の画像は指定された領域の 2 倍のサイズになります。
X スケール 領域の X 方向へのスケール比 (10 ~ 1000、デフォルト = 50) を指定します。
Y スケール 領域の Y 方向へのスケール比 (10 ~ 1000、デフォルト = 50) を指定します。
表示行

左上隅を基準に、再スケーリングされた画像を表示する行座標 (デフォルト = 0) を指定します。

:  
  • 値 -1 を指定すると、この関数によって、スケーリングされた画像が入力画像と同じ行座標に配置されるようになります。
    • 取り込んだ画像については、AcquireImage 関数に指定した [取り込み開始行] が使用されます。このため、ScaleImage 関数の [表示行] および [表示列] パラメータを 0, 0 に設定すると、画像が部分的に取り込まれた場合、ScaleImage 関数は取り込まれた画像の上に出力結果を表示します。
    • ほかのビジョンツール (例: PointFilter 関数などの画像ツール) で画像を出力すると、入力画像を定義する行座標が使用されます。例えば、PointFilter 関数を列/行座標 100,100 に定義すると、パラメータに -1 が設定された参照している ScaleImage 関数は、行座標 100 に表示されます。
  • ファームウェアリリース 4.7.1 から 4.8.4 の間に作成された ScaleImage 関数を含むジョブを、In-Sight ビジョンシステムまたはファームウェア 4.9.0 を動作させているエミュレータにロードすると、[表示行] の値は自動的に -1 に設定されます。4.7.1 以前に作成されたジョブでは、[表示行] の値は自動的に 0 に設定されます。
表示列 左上隅を基準に、再スケーリングされた画像を表示する列座標 (デフォルト = 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 が必要でした。