ImageMath

多目的関数である ImageMath 関数は、各ピクセルが、2 つの入力画像間で実行された算術演算 (加算、減算、平均など) の結果となるグレースケールまたは白黒の出力画像を生成します。

:  
  • In-Sight ファームウェア 5.2.0 以降から、この関数のアルゴリズムはより新しいアルゴリズムを使用するように変更されました。この変更により、[表示行] および [表示列] パラメータが関数に追加されました。また、[結果の配置][詳細設定オプション] パラメータおよび [AND]、[OR]、[XOR] オプション ([フィルタ種類] パラメータ) が関数から削除されました。
  • In-Sight ファームウェア 5.1.x 以前に設定された ImageMath 関数を含んでいるジョブを、ファームウェアバージョン 5.2.0 以降を実行する In-Sight ビジョンシステムにロードすると、[結果の配置] パラメータと [詳細設定オプション] パラメータが自動的にこの関数から削除され、[表示行] および [表示列] パラメータはデフォルト値 (0, 0) に設定されます。ImageMath 関数で [AND]、[OR]、[XOR] オプションを使用するように設定すると、#ERR が返されます。
  • In-Sight ファームウェア 5.2.0 以降に設定された ImageMath 関数を含んでいるジョブを、ファームウェアバージョン 5.1.x 以前を実行する In-Sight ビジョンシステムにロードしようとすると、エラーメッセージが表示されてジョブのロードが失敗します。
  • [結果の配置] オプションとして [画像 1 の原点] または [画像 2 の原点] が選択されている場合、In-Sight ファームウェア 5.1.x 以前に設定された ImageMath 関数は、キャリブレーションを後続のツールに適用することができます ([センサの原点] が選択されている場合は、結果はピクセル単位となります)。ただし、In-Sight ファームウェア 5.2.0 以降に設定された ImageMath 関数は、キャリブレーションを適用することはできません。ピクセルの計測値をワールド座標に変換するには、いくつかのオプションがあります。
    • ツール用の座標補正関数を使用します (例えば TransBlobsToWorld)。
    • ImageMath 関数を、適切なキャリブレーションを行う CalibrateImage 関数に適用して、CalibrateImage 関数を後続のツールへの入力として使用します。

ImageMath の入力パラメータ (In-Sight 5.2.0 以降)

Syntax:ImageMath(画像1,画像2,操作,表示行,表示列,表示)

画像 1 このパラメータは有効な画像データ構造体を含んでいるスプレッドシートのセルを参照している必要があります。デフォルトで参照されるセルは A0 で、このセルに AcquireImage 関数によって返される画像データ構造体が含まれています。
画像 2 このパラメータは有効な画像データ構造体を含んでいるスプレッドシートのセルを参照している必要があります。デフォルトで参照されるセルは A0 で、このセルに AcquireImage 関数によって返される画像データ構造体が含まれています。
操作

グレースケールまたは白黒の出力画像を生成する画像処理演算を指定します。

0 = 差 (デフォルト)

画像 1 - 画像 2 の絶対値。このパラメータで画像 1 と画像 2 とのグレースケール値の差を計算します。画像の順序は関係ありません。

画像 1 画像 2   出力画像

1 = 減算

画像 1 - 画像 2。このパラメータは、画像 1 のグレースケールしきい値から画像 2 のグレースケールしきい値を減算します。画像の順序は関係ありません。

画像 1 画像 2   出力画像

2 = 加算

画像 1 + 画像 2。このパラメータは、画像 1 と画像 2 のグレースケール値を加算します。

画像 1 画像 2   出力画像

3 = 最大 画像 1 対 画像 2 の最大値。このパラメータは、画像 1 と画像 2 を比較し、最高のグレースケール値を持つピクセルを選択します。
4 = 最小 画像 1 対 画像 2 の最小値。このパラメータは、画像 1 と画像 2 を比較し、最低のグレースケール値を持つピクセルを選択します。
5 = 平均 画像 1 と画像 2 の平均値。このパラメータは、画像 1 と画像 2 のグレースケール値を加算して、2 で除算します。
表示行 左上隅を基準に、出力画像を表示する行座標 (デフォルト = 0) を指定します。
表示列 左上隅を基準に、出力画像を表示する列座標 (デフォルト = 0) を指定します。
表示

画像の上に表示されるグラフィックスオーバレイを指定します。

0 = 非表示 (デフォルト) ImageMath 関数を含んでいるセルがスプレッドシート内でハイライトされている場合を除き、使用可能なグラフィックス項目は表示されません。
1 = 結果のグラフィックスのみ 処理された画像が常に表示されます。

ImageMath の入力パラメータ (In-Sight 5.1.x 以前)

Syntax:ImageMath(画像1 ,画像2,操作 ,結果の配置 ,詳細設定オプション.ディバイザ,詳細設定オプション.グレースケールオフセット,表示)

画像 1 このパラメータは有効な 画像 データ構造体を含んでいるスプレッドシートのセルを参照している必要があります。デフォルトで参照されるセルは A0 で、このセルに AcquireImage 関数によって返される 画像 データ構造体が含まれています。
画像 2 このパラメータは有効な 画像 データ構造体を含んでいるスプレッドシートのセルを参照している必要があります。デフォルトで参照されるセルは A0 で、このセルに AcquireImage 関数によって返される 画像 データ構造体が含まれています。
操作

グレースケールまたは白黒の出力画像を生成する画像処理演算を指定します。

0 = 差 (デフォルト) 画像 1 - 画像 2 の絶対値。このパラメータで画像 1 と画像 2 とのグレースケール値の差を計算します。画像の順序は関係ありません。
1 = 減算 画像 1 - 画像 2。このパラメータは、画像 1 のグレースケールしきい値から画像 2 のグレースケールしきい値を減算します。画像の順序は関係ありません。
2 = 加算 画像 1 + 画像 2。このパラメータは、画像 1 と画像 2 のグレースケール値を加算します。
3 = 最大 画像 1 対 画像 2 の最大値。このパラメータは、画像 1 と画像 2 を比較し、最高のグレースケール値を持つピクセルを選択します。
4 = 最小 画像 1 対 画像 2 の最小値。このパラメータは、画像 1 と画像 2 を比較し、最低のグレースケール値を持つピクセルを選択します。
5 = 平均 画像 1 と画像 2 の平均値。このパラメータは、画像 1 と画像 2 のグレースケール値を加算して、2 で除算します。
6 = AND 画像 1 と画像 2 を比較し、論理「AND」演算に基づいて白黒の画像を生成します。出力ピクセルは、両方の入力ピクセル値が 0 より大きい場合は白、いずれかのピクセル値が 0 に等しい場合は黒です。
7 = OR 画像 1 と画像 2 を比較し、論理「OR」演算に基づいて白黒の画像を生成します。出力ピクセルは、いずれかの入力ピクセル値が 0 より大きい場合は白、いずれのピクセル値も 0 以下の場合は黒です。
8 = XOR 画像 1 と画像 2 を比較し、論理「排他的 OR」演算に基づいて白黒の画像を生成します。出力ピクセルは、一方の入力ピクセル値が 0 より大きく、他方が 0 に等しい場合は白、両方のピクセル値が 0 より大きいか、両方が 0 に等しい場合は黒です。
結果の配置

画像処理演算が行われた後に、出力される画像の位置を指定します。

0 = 画像 1 の原点 (デフォルト) 画像 1 を出力画像の原点の位置として指定します。生成される画像は画像 1 をオーバレイします。
1 = 画像 2 の原点 画像 2 を出力画像の原点の位置として指定します。生成される画像は画像 2 をオーバレイします。
2 = センサの原点 AcquireImage 関数の行 0、列 0 を出力画像の原点として指定します。生成される画像は画像の左上隅に配置されます。
詳細設定オプション

グレースケール出力画像に適用することができる、追加の数学的な変更を指定します。演算の順序は、(1) 除算および (2) オフセットです。

ディバイザ 各出力ピクセルのグレースケール値に分割する値を指定します。(デフォルト = 1) ピクセル値の明度を変更し、255 を超えるピクセル値を「スケールダウン」することができます。
グレースケールオフセット 各出力ピクセルのグレースケール値に適用するオフセット値を指定します。(デフォルト = 0) 正および負のオフセットによって、それぞれ出力の明るさを増減します。
表示

画像の上に表示されるグラフィックスオーバレイを指定します。

0 = 非表示 (デフォルト)

ImageMath 関数を含んでいるセルがスプレッドシート内でハイライトされている場合を除き、使用可能なグラフィックス項目は表示されません。

1 = 結果のグラフィックスのみ

処理された画像が常に表示されます。

ImageMath の出力

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

ImageMath 関数の例

この例では、ガスケットの穴のみの出力ファイルを生成することを目的としています。後で、この穴が別のツールによって参照され、穴に関する決定を行うことができます。

画像 1 では、完全なガスケットの画像を取り込んでいます (下記)。

画像 2 は画像 1 のコピーとしたいところですが、すべての白い穴が塗りつぶされています。これを生成するには、Filter 関数をスプレッドシートに挿入し、プロパティシートで [領域] という単語を選択して、プロパティシートのツールバーにある [領域の最大化] ボタンをクリックすることによって、ROI を最大化します。ROI を最大化すると、画像 1 と画像 2 の ROI が同じサイズになります。

プロパティシートで [フィルタ種類] ドロップダウンメニューから [白穴塗りつぶし] を選択し、そのほかのパラメータについてはデフォルト設定を受け入れ、Filter プロパティシートで [OK] をクリックしてこの例の設定を完了し、関数を入力画像に適用します (下記の結果を参照)。

次に ImageMath 関数をスプレッドシートに挿入し、プロパティシートで A0 を画像 1 として受け入れます。ここで、フィルタ出力画像は画像 2 のソースとして参照される必要があります。プロパティシート内の画像 2 の語句をダブルクリックすると、非表示になって In-Sight スプレッドシートが表示されます。Filter 関数によって返された画像データ構造体をクリックし、[ジョブの編集] ツールバーにある [OK] ボタンをクリックして、ImageMath プロパティシートに戻ります。Enter キーを押すか、画像データ構造体をダブルクリックすることで、選択を確定することもできます。

プロパティシートで [フィルタ種類] ドロップダウンメニューから [差] を選択し、そのほかのパラメータについてはデフォルト設定を受け入れ、ImageMath プロパティシートで [OK] をクリックしてこの例の設定を完了し、関数を入力画像に適用します。

この結果、ガスケットの穴のみの出力画像となります (下記)。