InspectEdgePosition
InspectEdgePosition 関数は、InspectEdge 関数によって返されるエッジに関する詳細なエッジ解析を行うためのエッジモデルを構築するために使用します。このデータは、エッジの位置の判別、除外距離エッジの識別、および必要に応じて最適ラインの構築を行うために使用します。
InspectEdgePosition概要
スプレッドシートにこの関数を挿入した後に、InspectEdge 関数によって出力された 検査 データ構造体に対する参照を作成する必要があります。InspectEdge 関数への参照が確立されると、InspectEdgePosition 関数のパラメータを設定することによってエッジモデルが作成されます。エッジモデルでは次の項目が定義されます。
- 最適ラインのタイプ - 直線または円形。
- エッジを検出する方向。
- エッジ変化のタイプ - 白から黒または黒から白。
- 不必要なエッジをフィルタ処理するために使用するエッジ得点付け基準。
- 最適ラインから不必要なエッジをフィルタ処理するために使用する最適ライン基準。
エッジモデルが確立されると、この関数によってエッジ候補がエッジモデルと比較され、モデルからの偏差が報告されます。
InspectEdgePositionの入力パラメータ
Syntax:InspectEdgePosition(エッジ検査関数,最適ライン,エッジ方向の検出,エッジ: 第1,エッジ得点.得点しきい値,エッジ得点.エッジ規則,エッジ得点.コントラスト上限,最適ラインの詳細設定.外れ値の削除,最適ラインの詳細設定.最適距離フィルタ,最適ラインの詳細設定.最端フィルタ距離,最適ラインの詳細設定.得点再計算,最適ラインの詳細設定.最適ライン再計算,キャリパインデックス,表示)
エッジ検査関数 | InspectEdge 関数によって返された有効な検査データ構造体を含むスプレッドシートセルへの参照を指定します。 | ||||||||||||||||||||||
最適ライン |
検出されたエッジから作成する最適ラインの種類を指定します。
|
||||||||||||||||||||||
エッジ方向の検出 |
エッジを検出する方向を指定します。エッジを検出する方向をグラフィックス表示するために、暗い緑の矢印が追加されます。最適ラインには、画像内にグラフィックス表示でラベルが付けられます。最初の最適ラインには 0、2 番目の最適ラインには 1 が付けられます。 注 : 参照している InspectEdge 関数の ROI がカーブしている場合、検査はカーブの中心に対して行われます。[エッジ方向の検出] パラメータが [左→右] に設定されている場合は、カーブの中心方向に向かって検査され、[右→左] に設定されている場合はカーブの中心から外側へ向かって検査されます。
|
||||||||||||||||||||||
エッジ: 第1 |
[エッジ方向の検出] パラメータに従って、検出された最初のエッジのコントラスト変化を指定します。
|
||||||||||||||||||||||
エッジ得点 |
指定した基準をエッジが満たすかどうかを判別するために使用する、エッジ得点モードを指定します。
|
||||||||||||||||||||||
最適ラインの詳細設定 |
最適ラインを構築する方法を指定します。
|
||||||||||||||||||||||
キャリパインデックス | 画像上に表示するキャリパを指定します (キャリパは緑色に囲まれて表示されます)。デフォルトで表示されるキャリパは 0 です。 | ||||||||||||||||||||||
表示 |
画像上にオーバーレイする InspectEdgePosition グラフィックスの表示モードを指定します。
|
InspectEdgePositionの出力
戻り値 | 得点によってソートされ、一致したエッジを含む 検査 データ構造体。入力パラメータが無効であれば #ERR を返します。 |
結果 |
InspectEdgePosition 関数を初めてセルに挿入すると、スプレッドシート内に結果テーブルが自動的に作成されます。 |
InspectEdgePositionデータアクセス関数
次のデータアクセス関数が、InspectEdgePosition データ構造体結果テーブルを作成するためにスプレッドシートに自動挿入されます。このスプレッドシートは、最も遠い点および最適直線の 2 つのセクションに分けられます。
スプレッドシート名 | 関数名 | 説明 |
最も遠い点 | ||
点 1 /点 2 | GetExtremePosPoints(検査, サイド) | いずれかの側で最適ラインから最も遠いエッジを持つキャリパのインデックスを返します (近い = 0 および遠い = 1)。[最適ライン] が [なし] に設定されている場合は、領域の最も近い側の点を返します。 |
行 | GetEdgePosRow(検査, キャリパインデックス, エッジインデックス) | 指定したキャリパのエッジ位置の行座標を返します。 |
列 | GetEdgePosCol(検査, キャリパインデックス, エッジインデックス) | 指定したキャリパのエッジ位置の列座標を返します。 |
最適直線 | ||
行 0/行 1 | GetFitEdgePosRow(検査, 点インデックス) | 最適直線の指定した点の行座標を返します。 |
列 0/列 1 | GetFitEdgePosCol(検査, 点インデックス) | 最適直線の指定した点の列座標を返します。 |
中心行 | GetFitEdgePosCenterRow(検査, 点インデックス) | 最適円を指定した場合に挿入され、最適円の中心の行座標を返します。 |
中心列 | GetFitEdgePosCenterCol(検査, 点インデックス) | 最適円を指定した場合に挿入され、最適円の中心の列座標を返します。 |
半径 | GetFitEdgePosRadius(検査, 点インデックス) | 最適円を指定した場合に挿入され、最適円の中心からの距離を返します。 |
InspectEdgePosition 関数の数式はすべて次の条件に適合しています。
- 検査 = InspectEdgePosition 関数によって出力された 検査 データ構造体
- キャリパインデックス = 0 ~ N (キャリパの総数は、InspectEdgeForDefect 関数が参照している InspectEdge 関数によって出力されたキャリパの数と同じ)
- エッジペアインデックス = 0 または 1
- エッジインデックス = 0 ~ N
- 点インデックス = 0 ~ 1 (0 = 始まり、1 = 終わり)