FlexFlawModel

FlexFlawModel 関数は、オプションの Flex アルゴリズムの構築に使用されます。この関数によって、TrainFlawModel 関数で許容されるプロセスばらつきが補正され、DetectFlaw 関数でより正確に欠陥を分類することができます。FlexFlawModel 関数は、登録されているエッジモデルと現在取り込まれている画像のエッジモデルを比較することによって、TrainFlawModel 関数または Mask 関数の領域内における変位を測定します。

FlexFlawModel概要

FlexFlawModel 関数は、参照されている TrainFlawModel 関数によって指定された ROI 内で動作します。検査中、この関数は、参照されている TrainFlawModel 関数のフィクスチャおよびスケール値に基づいて、登録されているエッジモデルを部品の現在位置および方向に対して変換、回転、およびスケール変更します。その後、FlexFlawModel 関数は ROI 内から、指定された [画像の解像度] 値にあるエッジを抽出します。これらの抽出されたエッジは、登録されているエッジモデルと比較されます。次に、最初の一致得点が計算されますが、この最初の得点が小さすぎる場合は、#ERR が返されます。一致得点が十分に大きな値である場合、この関数では、[フレックスレシピ] の値に基づいて Flex アルゴリズムが実行されます。その後、最終的な Flex 得点が計算されます。

[フレックスパラメータ] を調整して Flex アルゴリズムを構築することによって、モデルを「引き伸ばし」、何もしなければ欠陥として分類される可能性のある許容範囲内のばらつきを補正することができます。この引き伸ばしによって、現在取り込まれている画像の部品にいっそう近い外観のモデルにすることも可能です。DetectFlaw 関数を実行する前に Flex を適用してこの部品に合わせて調整し、誤った不合格を減らすこともできます。

Flex アルゴリズムで補正できるものは次のとおりです。

  • 画像から画像へのわずかな動きのような位置エラー。
  • レンズまたは遠近歪み。
  • 形状や表面値のわずかな差異のような許容範囲内の部品のばらつき。
  • ラインスキャン画像に関連するようなピクセルの伸長。
  • 画像内での部品のスケール変化。

FlexFlawModelの入力パラメータ

Syntax:FlexFlawModel(登録傷モデル,画像の解像度,最小エッジ強度,最小マッチ得点,フレックスパラメータ.フレックスレシピ,フレックスパラメータ.フレックスグリッドのサイズ,フレックスパラメータ.包囲セグメントフレックスの許容,フレックスパラメータ.包囲セグメントフレックス,フレックスパラメータ.ラインセグメントフレックスの許容,フレックスパラメータ.ラインセグメントフレックス,フレックスパラメータ.ラインセグメント最大ラインサイズ,フレックスパラメータ.ピクセルフレックスの許容,フレックスパラメータ.ピクセルフレックス,描画オプション,表示画像,表示)

登録傷モデル TrainFlawModel 関数によって返された有効な TrainFlawModel データ構造体を含むスプレッドシートセルへの参照を指定します。
画像の解像度

この関数で使用される画像処理解像度を指定します。それによって、この関数では検査画像をダウンサンプリングすることができます。このパラメータによって、傷検出に使用される解像度、および出力画像と画像上のマーキングの解像度も指定されます。

ヒント :  [中程度] または [粗粒度] の設定を使用すると、関数の実行時間を短縮することができます。また、この設定では画像のノイズやごく小さなばらつきに対する関数の感度を下げることもできます。
1 = 細粒度 (デフォルト) フル解像度の画像が使用されるように指定します。
2 = 中程度 ハーフ解像度の画像が使用されるように指定します。
3 = 粗粒度 1/4 の解像度の画像が使用されるように指定します。
最小エッジ強度 画像からエッジ特徴を抽出するために必要なグレースケール明度の最小変化値 (5 ~ 255、デフォルト = 20) を指定します。
最小マッチ得点 [フレックスパラメータ] の使用を開始するために、一致得点の初期値の最小値 (10 ~ 100、デフォルト = 30) を指定します。一致得点の初期値がこの値より小さい場合、[フレックスパラメータ] は処理されず、関数の結果は #ERR になります。
フレックスパラメータ

Flex タイプに対する制限値と、許容できる Flex の大きさを指定します。

フレックスレシピ

事前に設定されている読み取り専用の設定値セットを指定します。これはさまざまなアプリケーションについて推奨される値のセットです。

0 = デフォルト フレックスグリッドのサイズ = 8x8、包囲セグメントフレックスの許容 = Off、包囲セグメントフレックス = 20、ラインセグメントフレックスの許容 = On、ラインセグメントフレックス = 10、ラインセグメント最大ラインサイズ = 15、ピクセルフレックスの許容 = On、ピクセルフレックス = 1。
1 = 高フレックス

フレックスグリッドのサイズ = 4x4、包囲セグメントフレックスの許容 = On、包囲セグメントフレックス = 40、ラインセグメントフレックスの許容 = On、ラインセグメントフレックス = 20、ラインセグメント最大ラインサイズ = 8、ピクセルフレックスの許容 = On、ピクセルフレックス = 10。

ヒント :  [高フレックス] は、大きな非線形歪みが見られるアプリケーションに最も適しています。
2 = 印刷拡張

フレックスグリッドのサイズ = 4x4、包囲セグメントフレックスの許容 = On、包囲セグメントフレックス = 30、ラインセグメントフレックスの許容 = On、ラインセグメントフレックス = 1、ラインセグメント最大ラインサイズ = 40、ピクセルフレックスの許容 = On、ピクセルフレックス = 1。

:  [印刷拡張] は印刷された文字の品質を検証するアプリケーションに最も適しており、この関数は文字の拡張を調整する必要があります。
3 = 部分欠落

フレックスグリッドのサイズ = 8x8、包囲セグメントフレックスの許容 = On、包囲セグメントフレックス = 5、ラインセグメントフレックスの許容 = On、ラインセグメントフレックス = 5、ラインセグメント最大ラインサイズ = 10、ピクセルフレックスの許容 = On、ピクセルフレックス = 1。

ヒント :  [部分欠落] は、エッジの境界線に基づくアプリケーションに最適であり、その欠陥サイズは非常に小さいものとなっています。
4 = 微細特徴

フレックスグリッドのサイズ = 2x2、包囲セグメントフレックスの許容 = On、包囲セグメントフレックス = 10、ラインセグメントフレックスの許容 = On、ラインセグメントフレックス = 3、ラインセグメント最大ラインサイズ = 15、ピクセルフレックスの許容 = On、ピクセルフレックス = 1。

ヒント :  [微細特徴] は、大きな非線形歪みがあるアプリケーションで、小さな欠陥を検出する場合に最も適しています。このオプションを指定すると、処理に長時間かかります。
98 = カスタム

[フレックスパラメータ] に手動でさまざまな値を入力して、[フレックスレシピ] 設定をカスタマイズすることができます。直前に選択したレシピのデフォルト値が初期値として表示されます。

:  [フレックスレシピ] の選択肢を制御するためのセル参照が作成されているときに、この関数のプロパティシートを開き、[フレックスレシピ] パラメータへの変更を行った場合、このセル参照のコマンドが関数によって上書きされます。
99 = フレックスなし

フレックスグリッドのサイズ = 2x2、包囲セグメントフレックスの許容 = Off、包囲セグメントフレックス = 1、ラインセグメントフレックスの許容 = Off、ラインセグメントフレックス = 1、ラインセグメント最大ラインサイズ = 3、ピクセルフレックスの許容 = Off、ピクセルフレックス = 1。

:  [フレックスなし] 設定は、この関数が、Flex の計算に必要最小限の設定を使用することを指示します。どのような場合でも [フレックスなし] を適用するには、FlexFlawModel 関数自体を無効にする必要があります。
フレックスグリッドのサイズ

Flex に対する訂正が使用されるときに、モデル画像およびマスク画像に適用される粒度設定を指定します。粒度が高いほど、より正確に非線形歪みを処理できるようになりますが、消費されるメモリの量も増加します。

1 = 2×2 粒度設定の最高値を指定します。
2 = 4×4 粒度設定の 2 番目に高い値を指定します。
3 = 8×8 (デフォルト) 粒度設定の 3 番目に高い値を指定します。
4 = 16×16 粒度設定の最も低い値を指定します。
包囲セグメントフレックスの許容

この関数で、囲まれたセグメントの変位を許容するかどうかを指定します。

1 = ON 囲まれたセグメントの変位を許容します。
0 = OFF (デフォルト) 囲まれたセグメントの変位を許容しません。
包囲セグメントフレックス 囲まれたセグメントの中心から許容される変位の最大値 (1 ~ 40、デフォルト = 20) を指定します。
ラインセグメントフレックスの許容

エッジの一部分の変位を許容するかどうかを指定します。

1 = ON (デフォルト) エッジの一部分の変位を許容します。
0 = OFF エッジの一部分の変位を許容しません。
ラインセグメントフレックス エッジセグメントに対して許容される線分変位の最大量 (1 ~ 20、デフォルト = 10) を指定します。
ラインセグメント最大ラインサイズ エッジを分割する場合に、分割されたエッジの最大長 (3 ~ 500、デフォルト = 15) を指定します。
ピクセルフレックスの許容

個々のエッジピクセルについて、Flex を計算するかどうかを指定します。

1 = ON (デフォルト) 個々のエッジピクセルについて Flex を計算します。
0 = OFF 個々のエッジピクセルについて Flex を計算しません。
ピクセルフレックス ピクセルに適用される変位の最大量 (1 ~ 10、デフォルト = 1) を指定します。
描画オプション

この関数が画像上に描画する結果を指定します。

0 = エッジマーキング (デフォルト) この関数で、現在のエッジモデルと、Flex アルゴリズムの適用後のエッジモデルとの間にエッジの照合結果を描画するように指定します。
1 = エッジ移動距離 現在取り込まれている画像との照合のために、Flex アルゴリズムによってモデル画像がどのように修正されたかを示す結果を描画するように指定します。
2 = グリッド移動距離 現在取り込まれている画像との照合の際、Flex アルゴリズムを使用して、グリッドのセクション内のピクセルを修正する量と方向を示すために、まず、画像を内部的にグリッドに分割することを指定します。
3 = なし 描画を行わないように指定します。
表示画像

この関数によって生成される出力画像のタイプを指定します。

0 = 実行時画像 (デフォルト) 現在取り込まれている画像を表示するように指定します。
1 = エッジ画像 現在取り込まれている画像から生成されたエッジモデルを表示するように指定します。
表示

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

0 = 非表示 (デフォルト) FlexFlawModel 関数を含んでいるセルがスプレッドシート内でハイライトされている場合を除き、すべてのグラフィックスは表示されません。
1 = 結果のグラフィックスのみ [描画オプション] および [表示画像] で指定された選択内容、および参照されている TrainFlawModel の検査領域は常に表示されます。
2 = すべて表示: 入力と結果のグラフィックス 入力領域、[描画オプション] および [表示画像] で指定された選択内容、および参照されている TrainFlawModel の検査領域は常に表示されます。

FlexFlawModelの出力

戻り値 Flex アルゴリズムによって修正されたモデルデータを含む フレックス傷モデルデータ構造体。入力パラメータが無効である場合は、#ERR が返されます。
結果 最初に FlexFlawModel 関数がデータ構造体の右側にあるセルに挿入されている場合、2 つのセルに、データアクセス関数である  GetMatchScore 関数および GetFlexScore 関数が自動的に入力されます。GetMatchScore 関数は Flex アルゴリズムを適用する前のエッジ一致得点を示す値を、また、GetFlexScore 関数は Flex アルゴリズム適用後のエッジ得点を示す値を返します。