CompareImage

入力画像とテンプレート画像を比較し、各ピクセルが正規化された差異を表すグレースケール出力画像を生成します。

CompareImage 概要

CompareImage 関数は、プロパティシートで [登録を強制] チェックボックスをオンにすると、現在の画像からテンプレートを抽出するように設計されています。このチェックボックスをオフにすると、CompareImage 関数はテンプレートのピクセルを入力画像にマッピングし、これらを比較してグレースケールの出力画像を作成します。特定の許容値内にあるテンプレート画像と一致しないピクセルは、明るい、つまり白いピクセルとして表示されます。

CompareImageの入力パラメータ

Syntax:CompareImage(画像,フィクスチャ.行,フィクスチャ.列,フィクスチャ.角度,領域.X,領域.Y,領域.高さ,領域.幅,領域.角度,登録を強制,エッジ範囲,補間方法,表示)

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

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

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

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

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

X フィクスチャ座標での原点の X オフセット
Y フィクスチャ座標での原点の Y オフセット
高さ 領域の X 軸に沿った寸法。
領域の Y 軸に沿った寸法。
角度 フィクスチャ座標での角度。
:  [フィクスチャ] および [領域] パラメータは、画像の範囲内で定義されている必要があります。画像の範囲内で定義されていない場合、この関数は #ERR を返します。
登録を強制

いつテンプレートを現在の画像から抽出するかを指定します。ROI のサイズが変更されたとき、または [登録を強制] パラメータが選択されたときのいずれかです。

0 = OFF (デフォルト) ROI のサイズが変更されたときにのみ、現在の画像からテンプレートが抽出されます。ユーザがテンプレート画像を選択 (または「登録」) 済みの場合にこれを選択すると、「登録」パラメータが無効になり、テンプレートが上書きされないよう防ぎます。
1 = ON テンプレートが現在の画像から抽出されます。ユーザがまだテンプレート画像を選択 (または「登録」) している場合には、これが選択されます。
エッジ範囲 画像の比較時に許容される、エッジ周囲のピクセルの数を指定します (0 ~ 24、デフォルト = 3)。この数値が高いほど、テンプレートと入力画像間で一致するエッジが厳密ではなくなります (つまり、不完全で一致しそうにないエッジは、出力画像で「差異」として表されます)。
補間方法

テンプレートを入力画像にマッピングして差異の出力画像を作成する場合に実行する、ピクセルの比較のタイプを指定します。

0 = 最も近い近傍 (デフォルト) テンプレートの各ピクセルが、入力画像の最も近いピクセルと比較されて、各ピクセルの正規化されたグレースケールの差異を計算します。これはより高速ですが、より精度の低い方法です。
1 = バイリニア テンプレートの各ピクセルが加重平均 (入力画像内の最も近い 4 つのピクセルのグレースケール値を表します) と比較されて、各ピクセルの正規化されたグレースケールの差異を計算します。これはより正確ですが、低速な方法です。
表示

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

0 = 非表示 (デフォルト) CompareImage 関数を含んでいるセルがスプレッドシート内でハイライトされている場合を除き、使用可能なグラフィックス項目は表示されません。
1 = 結果のグラフィックスのみ 処理された画像が常に表示されます。
2 = 入力のグラフィックスのみ 入力画像領域と関連付けられているグラフィックス項目が常に表示されます。
3 = 全て表示: 入力グラフィックスおよびテンプレート画像 入力画像領域に関連付けられているグラフィックス項目が常に表示されますが、CompareImage プロパティシートでは、テンプレート画像も表示されます。

CompareImageの出力

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

CompareImage

この例では、CompareImage 関数を使用して、「良好な」ガスケットのテンプレート画像と生産ライン上のガスケットの入力画像を比較することを目的としています。

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

次に、ツールを別のデータ構造体に固定します。固定するときに、対象物のすべてのインスタンスに表示される際立った特性を識別して、後続のビジョンツールの参照点として指定します。参照点によって、対象物が生産ライン上でわずかに回転したりずれたりした場合でも、正確な比較または検査を行うことができます。

この関数を固定するには、プロパティシートで「固定」という単語をクリックし、プロパティシートのツールバーにある [絶対参照] または [相対参照] ボタンのいずれかをクリックします。

プロパティシートが非表示になり、In-Sight スプレッドシートが表示されます。カーソルを移動して、スプレッドシート内の別のデータ構造体 (例えば FindPatterns) から [行]、[列]、[角度] のセルをフィクスチャの参照点として選択し、[ジョブの編集] ツールバーにある [OK] ボタンをクリックし (または Enter キーを押し)、選択を確定してプロパティシートに戻ります。

次に、プロパティシートの [登録を強制] チェックボックスがオンになっていることを確認して、画像の取り込みを手動でトリガすると、自動的にテンプレート画像 (下記) が抽出されるようにすることができます。ただし、単純に [登録を強制] チェックボックスをオンにすれば、画像の取り込みがトリガされるので、現在の画像が受け入れられたら、画像の設定および取り込みの手動でのトリガをスキップすることができます。テンプレートを選択したら、このチェックボックスをオフにして、テンプレートが上書きされないようにします。

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

ランタイム時に、このツールはテンプレート画像を入力画像と比較します。「不良」入力画像は、白い跡 (下記) によって損なわれたガスケットで構成されていることがあります。

2 つの差異は、グレスケールの出力画像内で明るいピクセルとして表示されます (下記)。

別のツール (例えば ExtractBlobs、下記を参照) では、出力画像を参照して、ガスケットが検査に合格したか不合格であるかを決定します。