InspectEdgeForDefect

InspectEdgeForDefect 関数は、InspectEdge 関数によって返されるエッジまたはエッジペアに関する詳細なエッジ解析を行うためのエッジモデルを構築するために使用します。このデータは、検出されたエッジまたはエッジペアを最適ラインからの距離などの欠陥やギャップと比較するための最適なライン適合を構築するために使用します。

InspectEdgeForDefect 関数の概要

スプレッドシートにこの関数を挿入した後に、InspectEdge 関数によって出力された 検査 データ構造体に対する参照を作成する必要があります。InspectEdge 関数への参照が確立されると、InspectEdgeForDefect 関数のパラメータを設定することによってエッジモデルが作成されます。エッジモデルでは次の項目が定義されます。

  • 最適ラインのタイプ - 直線または円形。
  • エッジのタイプ - 単一またはエッジペア。
  • エッジ変化のタイプ - 白から黒または黒から白。
  • 不必要なエッジをフィルタ処理するために使用するエッジ得点付け基準。
  • 最適ラインから不必要なエッジをフィルタ処理するために使用する最適ライン基準。
  • 欠陥とギャップの両方またはいずれかの検出に使用する許容値。

エッジモデルが確立されると、この関数によってエッジ候補がエッジモデルと比較され、モデルからの偏差が報告されます。

InspectEdgeForDefectの入力パラメータ

Syntax:InspectEdgeForDefect(エッジ検査関数,最適ライン,エッジペアの検査,エッジ方向の検出,エッジ: 第1,エッジ: 第2, エッジ得点.得点しきい値,エッジ得点.エッジ規則,エッジ得点.コントラスト上限,エッジ得点.ペアサイズ,最適ラインの詳細設定.外れ値の削除,最適ラインの詳細設定.最適距離フィルタ,最適ラインの詳細設定.最端フィルタ距離,最適ラインの詳細設定.得点再計算,最適ラインの詳細設定.最適ライン再計算,欠陥/ギャップ最大数,欠陥.最小距離,欠陥.最大距離,欠陥.サイズ有効,欠陥.最小サイズ,欠陥.最大サイズ,欠陥.面積有効,欠陥.最小面積,欠陥.最大面積,欠陥.欠陥ライン最適フィルタ,欠陥.ソート基準,ギャップ.有効,ギャップ.ギャップ最小値,ギャップ.ギャップ最大値,ギャップ.最大移動距離,ギャップ.終端ギャップを無視,ギャップ.ソート基準,キャリパインデックス,表示)

エッジ検査関数 InspectEdge 関数によって返された有効な検査データ構造体を含むスプレッドシートセルへの参照を指定します。
最適ライン

検出されたエッジから作成する最適ラインの種類を指定します。

1 = 最適直線 関数は、検出されたエッジから最適直線を作成します。
2 = 最適円 関数は、検出されたエッジから最適円を作成します。
3 = 自動調整 (デフォルト) 関数は、参照先領域に基づいて最適直線または最適円のいずれかを自動的に作成します。
エッジペアの検査

この関数でエッジペアを検出するかどうかを指定します。検出されたエッジペアには、画像内にグラフィックス表示でラベルが付けられます。最初に検出されたエッジには 0、2 番目に検出されたエッジには 1 が付けられます。

0 = OFF (デフォルト) エッジペアを検出しません。
1 = ON [エッジ得点] パラメータに基づいてエッジペアを検出します。
エッジ方向の検出

エッジを検出する方向を指定します。エッジを検出する方向をグラフィックス表示するために、暗い緑の矢印が追加されます。最適ラインには、画像内にグラフィックス表示でラベルが付けられます。最初の最適ラインには 0、2 番目の最適ラインには 1 が付けられます。

:  参照している InspectEdge 関数の ROI がカーブしている場合、検査はカーブの中心に対して行われます。[エッジ方向の検出] パラメータが [左→右] に設定されている場合は、カーブの中心方向に向かって検査され、[右→左] に設定されている場合はカーブの中心から外側へ向かって検査されます。
0 = 左→右 (デフォルト)

ROI の左から右に向かってエッジを検出します。

1 = 右→左

ROI の右から左に向かってエッジを検出します。

3 = 内→外

ROI の中心から ROI の上の境界および下の境界に向かってエッジを検出します (検出されたエッジの順序は、ROI の「X」矢印とは反対の方向の順になります)。

:  このオプションを有効にするには、[エッジペアの検査] パラメータを ON にしておく必要があります。
2 = 外→内

ROI の上下の境界から ROI の中心に向かってエッジを検出します (検出されたエッジの順序は、ROI の「X」矢印とは反対の方向の順になります)。

:  このオプションを有効にするには、[エッジペアの検査] パラメータを ON にしておく必要があります。
エッジ: 第1

[エッジ方向の検出] パラメータに従って、検出された最初のエッジのコントラスト変化を指定します。

1 = 黒→白 エッジは、黒ピクセルから白ピクセルに変化します。
2 = 白→黒 (デフォルト) エッジは、白ピクセルから黒ピクセルに変化します。
3 = 任意 エッジは黒→白または白→黒のいずれかに変化でき、この関数は適切な変化を決定します。変化を指定すると、関数のパフォーマンスが改善します。
エッジ: 第2

[エッジ方向の検出] パラメータに従って、検出された 2 番目のエッジのコントラスト変化を指定します。

:  このオプションを有効にするには、[エッジペアの検査] パラメータを ON にしておく必要があります。
1 = 黒→白 (デフォルト) エッジは、黒ピクセルから白ピクセルに変化します。
2 = 白→黒 エッジは、白ピクセルから黒ピクセルに変化します。
3 = 任意 エッジは黒→白または白→黒のいずれかに変化でき、この関数は適切な変化を決定します。変化を指定すると、関数のパフォーマンスが改善します。
エッジ得点

指定した基準をエッジが満たすかどうかを判別するために使用する、エッジ得点モードを指定します。

得点しきい値 得点付けのしきい値を指定します。この値 (0 ~ 100、デフォルト = 10) より小さい得点のエッジはフィルタで除去されます。
エッジ規則

得点を計算するときに最も重要になるエッジのタイプを指定します。

1 = 最初のエッジ 検出された最初のエッジに注目します。
2 = エッジ強度

最強のコントラスト変化を持つエッジに注目します。

:  [エッジペアの検査] パラメータがオンになっている場合、スコアは、2 つのエッジの平均コントラスト値に基づきます。
3 = 最初のエッジ/エッジ強度 (デフォルト) 最初に検出され、最強のコントラスト変化を持つエッジに注目します。
4 = エッジペアサイズ [ペアサイズ] パラメータに最も近いサイズで検出されたエッジペアに注目します。このオプションを有効にするには、[エッジペアの検査] パラメータを ON にしておく必要があります。
5 = 最初のエッジ/エッジペアサイズ [ペアサイズ] パラメータに最も近いサイズで検出された最初のエッジペアに注目します。このオプションを有効にするには、[エッジペアの検査] パラメータを ON にしておく必要があります。
6 = エッジ強度/エッジペアサイズ 最強のコントラスト変化を持ち、[ペアサイズ] パラメータに最も近いサイズで検出されたエッジペアに注目します。このオプションを有効にするには、[エッジペアの検査] パラメータを ON にしておく必要があります。
7 = 最初のエッジ/エッジ強度/エッジペアサイズ 最強のコントラスト変化を持ち、[ペアサイズ] パラメータに最も近いサイズで検出された最初のエッジペアに注目します。このオプションを有効にするには、[エッジペアの検査] パラメータを ON にしておく必要があります。
コントラスト上限

エッジとみなすエッジコントラスト変化の上限 (2 ~ 255、デフォルト = 255) を指定します。この値を超えるエッジコントラスト変化を持つエッジの得点は、すべて同じ最高得点になります。

:  このパラメータを有効にするには、[エッジ規則] パラメータを、[エッジ強度]、[最初のエッジ/エッジ強度]、[エッジ強度/エッジペアサイズ]、[最初のエッジ/エッジ強度/エッジペアサイズ] のいずれかに設定しておく必要があります。
ペアサイズ

最高得点を記録するエッジペアサイズを指定します (有効な範囲は、In-Sight ビジョンシステムの画像幅の 1 ~ 3 倍。デフォルト = 5)。このパラメータが有効な場合、この値の上下で検出されたエッジペアはこの値に比例して得点付けされます。例えば、[ペアサイズ] が 10 に設定されており、値が 8 と値が 14 の 2 つのエッジペア候補が検出された場合は、値 8 のエッジペアが選択されます。これは、2 番目のエッジペアより [ペアサイズ] に近いためです。

:  このパラメータを有効にするには、[エッジペアの検査] パラメータを ON にし、[エッジ規則] パラメータを [エッジペアサイズ]、[最初に検出されたエッジペアサイズ]、[エッジ強度/エッジペアサイズ]、または [最初のエッジ/エッジ強度/エッジペアサイズ] のいずれかに設定しておく必要があります。
最適ラインの詳細設定

最適ラインを構築する方法を指定します。

外れ値の削除

[最適距離フィルタ] パラメータで指定されている距離より遠い点を最適ラインから削除するように指定します。

0 = OFF (デフォルト) 除外距離エッジを考慮しません。
1 = ON 計算時に除外距離エッジを考慮します。
最適距離フィルタ 最適ライン再計算で利用するためにエッジが元の最適ラインから離れている必要がある距離をピクセル単位で指定します (有効な範囲は In-Sight ビジョンシステムの画像幅の 1 ~ 3 倍。デフォルト = 2)。この設定は、欠陥が最適ラインに影響を与えないようにする場合に有効です。この設定を有効にするには、[外れ値の削除] が ON になっている必要があります。
最端フィルタ距離 除外距離が、まだ最適ラインの一部とみなされる最適ラインからの距離を指定します (有効な範囲は In-Sight ビジョンシステムの画像幅の 1 ~ 3 倍。デフォルト はビジョンシステムの画像幅の 3 倍)。この値より大きなエッジはすべて無視されます。
得点再計算

最適ラインにより近いエッジを選択するために、エッジを得点再計算するように指定します。

0 = OFF (デフォルト) 除外距離を考慮するためにエッジを得点再計算しません。
1 = ON 計算時に除外距離エッジを考慮するために得点再計算を行います。
最適ライン再計算

エッジの得点再計算後に最適ラインの再適合を行うように指定します。この機能を有効にすると、最適ラインの精度が向上しますが、処理時間は長くなります。

0 = OFF (デフォルト) 最適ラインの再適合を行いません。
1 = ON エッジの得点再計算後に最適ラインの再適合を行います。
欠陥/ギャップ最大数 検出する欠陥とギャップの両方またはいずれかの最大数を指定します (1 ~ 4096、デフォルト = 5)。この値は、欠陥とギャップに個別に適用されます。例えば、値を 5 に設定すると、最大 5 つの欠陥と 5 つのギャップが検出されます。この設定は、スプレッドシートにデータアクセス結果テーブルを構築するために使用されます。
欠陥

最適ラインのエッジの欠陥を判別するためのパラメータを指定します。

最小距離 エッジと最適ラインの間の距離をピクセル単位で指定します (有効な範囲は In-Sight ビジョンシステムの画像幅の 0.001 ~ 3 倍。デフォルト = 3 ピクセル)。この値より小さい場合は欠陥ではないと判別されます。
最大距離

エッジと最適ラインの間の距離をピクセル単位で指定します (有効な範囲は In-Sight ビジョンシステムの画像幅の 0.001 ~ 3 倍。デフォルト はビジョンシステムの画像幅の 3 倍)。この値より大きい場合は欠陥ではないと判別されます。

:  この値が [最小距離] パラメータより小さい場合、関数の結果は #ERR になります。
サイズ有効

サイズ欠陥を考慮するかどうかを指定します。サイズ欠陥では、エッジに沿った長さが考慮されます。

:  [サイズ有効] と [面積有効] が両方ともに ON の場合は、両方の条件に不適合だった欠陥のみが表示されます。

0 = OFF

サイズ欠陥を考慮しません。

1 = ON (デフォルト)

[最小サイズ] および [最大サイズ] パラメータの設定値に基づいて、サイズ欠陥を考慮します。

最小サイズ 最小欠陥サイズをピクセル単位で指定します。(有効な範囲は In-Sight ビジョンシステムの画像幅の 0.001 ~ 3 倍。デフォルト = 3 ピクセル)。最適ラインからの連続した偏差がこの値より小さい場合は欠陥とはみなされません。
最大サイズ 最大欠陥サイズをピクセル単位で指定します。(有効な範囲は In-Sight ビジョンシステムの画像幅の 0.001 ~ 3 倍。デフォルトはビジョンシステムの画像幅の 3 倍)。最適ラインからの連続した偏差がこの値より大きい場合は欠陥とはみなされません。
面積有効

面積欠陥を考慮するかどうかを指定します。面積欠陥では、最適ラインに沿った長さ、および欠陥エッジの最適ラインからの距離が考慮されます。

:  [サイズ有効] と [面積有効] が両方ともに ON の場合は、両方の条件に不適合だった欠陥のみが表示されます。
0 = OFF 面積欠陥を考慮しません。
1 = ON (デフォルト) [最小面積] および [最大面積] パラメータの設定値に基づいて、面積欠陥を考慮します。
最小面積 最小欠陥面積をピクセル単位で指定します (有効な範囲は  0 ~ 1000000倍。デフォルト = 10)。この値より小さい面積は欠陥とはみなされません。
最大面積 最大欠陥面積をピクセル単位で指定します (有効な範囲は  0 ~ 1000000倍。デフォルト = 1000000)。この値より大きい面積は欠陥とはみなされません。
欠陥ライン最適フィルタ

最適ラインとの相対位置に基づいて欠陥をフィルタするかどうかを指定します。

0 = フィルタしない (デフォルト) 関数は、最適ラインの両側の欠陥を返します。
1 = 最適ラインの左側を無視 関数は、最適ラインの左側の欠陥をフィルタし、最適ラインの右側で検出された欠陥のみを返します。
2 = 最適ラインの右側を無視 関数は、最適ラインの右側の欠陥をフィルタし、最適ラインの左側で検出された欠陥のみを返します。
ソート基準

検出された欠陥をソートする方法を指定します。

サイズ (デフォルト) 検出された欠陥を、サイズの大きい順にソートします。
面積 検出された欠陥を、面積の大きい順にソートします。
位置 検出された欠陥を、キャリパインデックス順にソートします。
ギャップ

エッジ内のギャップを判別するためのパラメータを指定します。

有効

検出されたエッジ内のギャップを考慮するかどうかを指定します。

0 = OFF ギャップを考慮しません。
1 = ON (デフォルト) ほかのギャップパラメータの設定に基づいて、ギャップを考慮します。
ギャップ最小値 ギャップ最小値をピクセル単位で指定します。(有効な範囲は In-Sight ビジョンシステムの画像幅の 0.001 ~ 3 倍。デフォルト = 3 ピクセル)。この値より小さいギャップはギャップとはみなされません。
ギャップ最大値 ギャップ最大値をピクセル単位で指定します。(有効な範囲は In-Sight ビジョンシステムの画像幅の 0.001 ~ 3 倍。デフォルトはビジョンシステムの画像幅の 3 倍)。この値より大きいギャップはギャップとはみなされません。
最大移動距離

最適ラインをギャップとみなす、最適ラインからの最大移動距離をピクセル単位で指定します (有効な範囲は In-Sight ビジョンシステムの画像幅の 1 ~ 3 倍。デフォルトはビジョンシステムの画像幅の 3 倍)。この設定は、検出されたエッジのうち、ほかのエッジと同じ最適ラインに沿っていないエッジを削除するフィルタとして機能します。

:  [エッジペアの検査] パラメータが有効な場合は、領域の中心からエッジペアの中心までの最大移動距離がピクセル単位で測定されます。この距離が [最大移動距離] パラメータの値より大きい場合は、ギャップとみなされます。
終端ギャップを無視

ROI の始まりと終わりで検出されたギャップを考慮するかどうかを指定します。

0 = OFF ROI の始まりと終わりで検出されたギャップを考慮しません。
1 = ON (デフォルト) ROI の始まりと終わりで検出されたギャップを考慮します。
ソート基準

検出されたギャップをソートする方法を指定します。

サイズ (デフォルト) 検出されたギャップを、サイズの大きい順にソートします。
位置 検出されたギャップを、キャリパインデックス順にソートします。
キャリパインデックス 画像上に表示するキャリパを指定します (キャリパは緑色に囲まれて表示されます)。デフォルトで表示されるキャリパは 0 です。
表示

画像上のこの関数のグラフィックスオーバレイの表示モードを指定します。

0 = 非表示 (デフォルト) InspectEdgeForDefect 関数を含んでいるセルがスプレッドシート内でハイライトされている場合を除き、すべてのグラフィックスが表示されません。
1 = 結果のグラフィックスのみ 最適ライン、検出された欠陥、除外距離点とギャップの両方またはどちらかが常に表示されます。
2 = 結果のグラフィックスと検出されたエッジ 最適ライン、検出された欠陥、除外距離点とギャップの両方またはどちらか、および検出されたエッジ点が常に表示されます。
3 = 結果のグラフィックスとキャリパの詳細 最適ライン、検出された欠陥、除外距離点とギャップの両方またはどちらか、検出されたエッジ点、およびインデックス付きキャリパウィンドウが常に表示されます。
4 = すべて表示: 入力と結果のグラフィックス 入力領域、最適ライン、検出された欠陥、除外距離点とギャップの両方またはどちらか、および検出されたエッジ点が常に表示されます。

InspectEdgeForDefectの出力

戻り値 検出された欠陥、除外距離、およびギャップを含む 検査 データ構造体。入力パラメータが無効であれば #ERR を返します。
結果

InspectEdgeForDefect 関数が初めてセルに挿入されると、スプレッドシート内に結果テーブルが作成されます。この結果テーブルは、実行中の検索タイプに対応しています。

:  [欠陥/ギャップ最大数] パラメータの値がゼロより大きい場合、InspectEdgeForDefect 関数は、最初の 10 個の欠陥/ギャップ/エッジ/エッジペアに対応する「最大」10 個のエントリを含む結果テーブルを自動的にデータ構造体に挿入します。追加のエントリを表示する場合は、最後の行をコピーして末尾に追加の行を貼り付けることによってテーブルを拡張することができます。

InspectEdgeForDefectデータアクセス関数

次のデータアクセス関数が、InspectEdgeForDefect データ構造体結果テーブルを作成するためにスプレッドシートに自動挿入されます。このスプレッドシートは、要約、欠陥、ギャップ、および除外距離の 4 つのセクションに分けられます。

:  

InspectEdgeForDefect 関数の数式はすべて次の条件に適合しています。

  • 検査 = InspectEdgeForDefect 関数によって出力された検査データ構造体
  • キャリパインデックス = 0 ~ N (キャリパの総数は、InspectEdgeForDefect 関数が参照している InspectEdge 関数によって出力されたキャリパの数と同じ)
  • エッジペアインデックス = 0 または 1
  • エッジインデックス = 0 ~ N
  • 点インデックス = 0 ~ 1

[エッジペアの検査] パラメータが有効な場合は、エッジ 1 のデータの追加行が自動的にスプレッドシートに挿入されます。この場合、インデックス 0 はエッジ 0 に関係する情報を返し、インデックス 1 はエッジ 1 に関係する情報を返します。

スプレッドシート名 関数名 説明
要約
欠陥/ギャップ GetDefectGapCount(検査, [エッジペアインデックス], [欠陥/ギャップ]) 指定した内容に応じて、欠陥/ギャップの数を返します。欠陥 = 0、ギャップ = 1。
行 0/1 GetFitEdgeRow(検査, [エッジペアインデックス], [点インデックス]) 指定した点の行座標を返します。
列 0/1 GetFitEdgeCol(検査, [エッジペアインデックス], [点インデックス]) 指定した点の列座標を返します。
中心行 GetFitEdgeCenterRow(検査, [エッジペアインデックス]) 最適円を指定した場合に挿入され、最適円の中心の行座標を返します。
中心列 GetFitEdgeCenterCol(検査, [エッジペアインデックス]) 最適円を指定した場合に挿入され、最適円の中心の列座標を返します。
半径 GetFitEdgeRadius(検査, [エッジペアインデックス]) 最適円を指定した場合に挿入され、最適円の中心から選択したエッジペアまでの距離を返します。
欠陥/ギャップ
サイズ/面積 GetDefectGapValue(検査, [欠陥/ギャップインデックス], [欠陥/ギャップ], [エッジペアインデックス], [サイズ/面積/幅]) 欠陥またはギャップの領域のサイズを返します。欠陥 = 0、ギャップ = 1、サイズ = 0、面積 = 1、幅 = 2。
GetDefectGapBoundsRow(検査, [欠陥/ギャップインデックス], [欠陥/ギャップ], [エッジペアインデックス]) 欠陥に外接する矩形の行座標を返します。欠陥 = 0、ギャップ = 1。
GetDefectGapBoundsCol(検査, [欠陥/ギャップインデックス], [欠陥/ギャップ], [エッジペアインデックス]) 欠陥に外接する矩形の列座標を返します。欠陥 = 0、ギャップ = 1。
高さ GetDefectGapBoundsHigh(検査, [欠陥/ギャップインデックス], [欠陥/ギャップ], [エッジペアインデックス]) 欠陥に外接する矩形の高さを返します。欠陥 = 0、ギャップ = 1。
GetDefectGapBoundsWide(検査, [欠陥/ギャップインデックス], [欠陥/ギャップ], [エッジペアインデックス]) 欠陥に外接する矩形の幅を返します。欠陥 = 0、ギャップ = 1。
角度 GetDefectGapBoundsAngle(検査, [欠陥/ギャップインデックス], [欠陥/ギャップ], [エッジペアインデックス]) 欠陥に外接する矩形の角度を返します。欠陥 = 0、ギャップ = 1。
カーブ GetDefectGapBoundsCurve(検査, [欠陥/ギャップインデックス], [欠陥/ギャップ], [エッジペアインデックス]) 欠陥に外接する矩形のカーブを返します。欠陥 = 0、ギャップ = 1。
始まり/終わり GetDefectGapCaliperIndex(検査, [欠陥/ギャップインデックス], [欠陥/ギャップ], [エッジペアインデックス], [欠陥の始まり/終わり]) 欠陥が始まるキャリパまたは終わるキャリパを返します。欠陥 = 0、ギャップ = 1、始まり = 0、終わり = 1。
除外距離 - 最も遠い点 1/2
キャリパ GetExtremePoints(検査, [エッジペアインデックス], [近い/遠い]) エッジが最適ラインから最も離れているキャリパのインデックスを返します (近い = 0、遠い = 1)。
GetEdgeRow(検査, [キャリパインデックス], [エッジインデックス], [エッジペアインデックス]) 参照したエッジの行座標を返します。
GetEdgeCol(検査, [キャリパインデックス], [エッジインデックス], [エッジペアインデックス]) 参照したエッジの列座標を返します。
距離 GetEdgeFromFit(検査, [キャリパインデックス], [エッジペアインデックス]) 参照したキャリパのエッジから最適ラインまでの距離を返します。