TrainFlawModel

TrainFlawModel 関数は、取り込まれた画像との比較対象となる「ゴールデン」、つまり完全な部品/対象物のモデルを作成するために使用します。この関数は検査の対象を定義します。[領域]、または [外部定義領域またはパス] パラメータで設定される対象領域は、登録される画像の領域とともに、これを参照する DetectFlaw および FlexFlawModel 関数が検索を実行する場所を定義します。

画像取り込みごとに、そのときのフィクスチャの値に基づいて ROI が調整されます。ROI の座標および更新後の [スケール] の値は、この関数を参照しているすべての DetectFlaw または FlexFlawModel 関数に渡されます。TrainFlawModel はこのモデルを保持します。

:  TrainFlawModel 関数は、TrainFlawModel 関数を参照している DetectFlaw および FlexFlawModel 関数に更新後の領域、フィクスチャ、およびスケールデータを渡します。したがって、TrainFlawModel 関数を無効にする場合は、これを参照している関数をすべて無効にした後である必要があります。そうしないと、TrainFlawModel 関数を参照している関数では、無効化前の TrainFlawModel 関数の状態に基づいてデータが処理されます。

TrainFlawModelの入力パラメータ

Syntax:TrainFlawModel(フィクスチャ.列,フィクスチャ.角度,領域.X,領域.Y,領域.高さ,領域.幅,領域.角度,領域.カーブ,外部領域またはパス,スケール,エッジマスクサイズ,最小エッジ強度,最小エッジ長,強制登録,表示解像度,エッジマーキング描画,表示画像,タイムアウト,表示)

画像

 

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

:  
  • TrainFlawModel 関数は、キャリブレーションされた結果をサポートしていません。この関数は、ピクセル座標でのみ動作します。
  • TrainFlawModel 関数では、グレースケール画像とカラー画像の両方がサポートされています。カラー画像を参照する場合、赤、緑、および青 (RGB) の 3 つのカラープレーンのいずれかの欠陥が識別されます。

フィクスチャ

 

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

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

Row (デフォルト = 0) 画像座標での行オフセット。
Column (デフォルト = 0) 画像座標での列オフセット
Theta (デフォルト = 0) 画像座標系での方位角

領域

 

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

:  別のビジョンツール関数またはオペレータ I/F 関数の出力に対する ROI を定義する場合は、セル参照を領域座標に設定する代わりに、[外部定義領域またはパス] パラメータを使用します。[外部定義領域またはパス] パラメータはフィクスチャの動きを正しく考慮しますが、セル参照は正しく機能しない可能性があり、フィクスチャの動きを参照する関数は #ERR を返すことがあります。
X フィクスチャ座標での原点の X オフセット
Y フィクスチャ座標での原点の Y オフセット
高さ 領域の X 軸に沿った寸法。
領域の Y 軸に沿った寸法。
角度 フィクスチャ座標での角度。
カーブ 領域の X 軸と反対側の境界線との間の角度変位。
:  [フィクスチャ] および [領域] パラメータは、画像の範囲内で定義されている必要があります。画像の範囲内で定義されていない場合、この関数は #ERR を返します。

外部定義領域またはパス

このパラメータは、AnnulusCircleRegionEditAnnulusEditCircleEditCompositeRegionEditPolygon、または EditRegion の各関数を含むスプレッドシートセルを参照できます。このパラメータを使用すると、関数は [領域] と [フィクスチャ] の設定を無視し、参照先領域で指定された画像領域を検査します。EditCompositeRegion 関数コントロールを参照している場合は、検査領域がさまざまな形状の混合となることがあります。合成領域内の各形状は、検査領域に対して加算または減算 (マスキング) されるように割り当てることができます。

:  
  • モデルの定義に外部定義領域またはパスを使用しているときに、この外部定義領域またはパスを変更する場合は、モデルの再登録を開始するために、[強制登録] パラメータを有効にする必要があります。外部定義領域またはパスが参照されているときに、プロパティシートを開いて閉じても再登録は開始されません。
  • このパラメータが外部定義領域の参照として設定されている場合に、この関数の内部領域を使用するには、セル参照に値 0 を入力し、このパラメータを手動で 0 に設定する必要があります。それ以外の場合、この関数は引き続き外部定義領域を参照します。

スケール

 

実行時に想定されるモデル部品/対象物のスケーリング後のサイズを登録モデルに対する割合 (%) で指定します (80 ~ 120、デフォルト = 100)

:  例えば、[フィクスチャ] 値の入力に FindPatMaxPatterns 関数を使用している場合、TrainFlawModel 関数の [スケール] パラメータが、FindPatMaxPatterns 関数によって出力される [スケール] 値へのセル参照として設定されることがあります。

エッジマスクサイズ

 

エッジのどのくらい近くまでマスク画像に構築されるか、その許容値を指定します (0 ~ 5、デフォルト = 0)

最小エッジ強度

 

エッジ全体について、モデルに取り込まれる輝度の最小変化値を指定します (10 ~ 255、デフォルト = 30)

最小エッジ長

 

モデルに取り込まれる最短のエッジの長さを指定します (10 ~ 1000、デフォルト = 20)。これより短いエッジは、モデルから除外されます。この値は、エッジに接続されるエッジピクセル数の最小値を表します。このパラメータの設定値を大きくすると、検出されるエッジの数が少なくなりますが、小さくすると検出されるエッジの数が増えます。この設定は、通常短いエッジとして現れるノイズエッジピクセルの除去に有効です。

強制登録

 

スプレッドシートが更新されたときに、モデルを自動的に再登録するかどうかを指定します。

[強制登録] パラメータに関係なく、この関数のプロパティシートを開いて次のパラメータの変更を行い、[OK] ボタンを押して確認すると、モデルは再登録されます。

  • [画像] パラメータの変更
  • [フィクスチャ] パラメータの変更
  • [領域] パラメータの変更
  • [外部定義領域またはパス] パラメータの変更
  • [スケール] パラメータの変更
  • [エッジマスクサイズ] パラメータの変更
  • [最小エッジ強度] パラメータの変更
  • [最小エッジ長] パラメータの変更

ランタイム操作中、次のいずれの操作が行われた場合、モデルは再登録されます。

  • [画像] パラメータの変更
  • [領域] パラメータの変更
  • [外部定義領域またはパス] パラメータの変更
  • [最小エッジ強度] パラメータの変更
  • [最小エッジ長] パラメータの変更
0 = OFF (デフォルト)

プロパティシートを開いて前述のパラメータの 1 つを変更し、プロパティシートの [OK] ボタンを押してその変更を確認した場合のみ、再登録が行われます。

:  パラメータがスプレッドシートに入力されている場合、TrainFlawModel 関数のプロパティシートを開かずにこれらのパラメータを変更すると、モデルの再登録は行われません。モデルの再登録を行うには、プロパティシートを開くか、または [強制登録] パラメータをオンに設定する必要があります。
1 = ON スプレッドシートが実行されるたびに、新しいモデルが登録されます。
表示解像度

モデル画像とエッジモデルの表示に使用する解像度を指定します。[中程度] または [粗粒度] を指定すると、画像はダウンサンプリングされ、細部やノイズは除去されます。

0 = 細粒度 (デフォルト) フル解像度でモデルが登録されるように指定します。
1 = 中程度 ハーフ解像度でモデルが登録されるように指定します。
2 = 粗粒度 1/4 の解像度でモデルが登録されるように指定します。
エッジマーキング描画

モデルのエッジを画像上に描画するかどうかを指定します。登録されているエッジは緑色で、マスクされたエッジは青色で描画されます。

0 = ON (デフォルト) 画像上にエッジマークを描画します。
1 = OFF 画像上にエッジマークを描画しません。
表示画像

表示する出力画像を指定します。

:  この画像は表示のためにのみ使用されます。別の関数への入力として使用することはできません。
0 = 実行時画像 そのときに取り込まれている画像が表示されるように指定します。
1 = エッジ画像 画像内の登録されているエッジが表示されるように指定します。
2 = モデル画像 (デフォルト) 登録されているモデルが表示されるように指定します。
3 = マスク画像 そのときに登録されているマスク画像が表示されるように指定します。
タイムアウト (ミリ秒) この関数が有効なモデルを検索する時間をミリ秒単位で指定します (0 ~ 30000、デフォルト = 5000)。指定された時間が経過すると、実行は停止し、#ERR が返されます。値を 0 に設定すると設定値が無効になり、タイムアウトは適用されません。

表示

 

画像上の TrainFlawModel グラフィックスオーバレイの表示モードを指定します。登録モデルのピクセルと一致するピクセルは緑色で表示されます。一致しないピクセルは黄色になります。マスク画像から欠落しているピクセルは青色、マスク画像内の余分なピクセルは濃いマゼンタ色で表示されます。また、余分なエッジの欠陥はマゼンタ色、欠落しているエッジや面積欠陥ピクセルは赤色で表示されます。

0 = 非表示 (デフォルト) TrainFlawModel 関数を含んでいるセルがスプレッドシート内でハイライトされている場合を除き、すべてのグラフィックスが表示されません。
1 = 結果のグラフィックスのみ 指定された表示画像が常に表示されます。
2 = 入力と結果のグラフィックス 入力画像領域、モデル画像、およびマスク画像が常に表示されます。

TrainFlawModelの出力

戻り値 各解像度で表されたモデル画像、エッジモデル画像、およびマスク画像が入った TrainFlawModel データ構造体。入力パラメータのいずれかが無効である場合は #ERR が返されます。
結果 TrainFlawModel 関数が初めてセルに挿入されると、登録状態が右隣のセルに自動的に表示されます。モデルを登録できない場合は #ERR が挿入されます。

TrainFlawModelデータアクセス関数

1 つのデータアクセス関数がスプレッドシートに自動挿入されます。

登録 GetTrained(傷モデルの登録) モデルを登録できた場合には 1、登録できなかった場合には 0 を返します。