FindMultiLine
画像領域内で複数の直線エッジを探します。FindMultiLine 関数は、領域のローカル座標系に相対的な正の Y 方向にスキャンされた、放射線セグメントのピクセル値を合計することによって、画像領域の 1 次元プロジェクションを形成します。投影された画像データからエッジ遷移が抽出されます。
FindMultiLineの入力パラメータ
Syntax:FindMultiLine(画像,フィクスチャ.行,フィクスチャ.列,フィクスチャ.角度,領域.X,領域.Y,領域.高さ,領域.幅,領域.角度,領域.カーブ,検出する数,しきい値:黒→白,しきい値:白→黒,スコアの正規化,検索,角度範囲,エッジ幅,表示)
画像 | 画像データ構造体を含んだスプレッドシートセルを参照するように指定します。デフォルトでは、このパラメータは、AcquireImage 画像データ構造体を含むセル A0 を参照しています。また、このパラメータは、ビジョンツールのグラフィックス関数や、座標補正関数により返された、そのほかの画像データ構造体も参照できます。 | ||||||||||||
フィクスチャ |
フィクスチャ入力、またはビジョンツール関数の画像座標系の出力に関連する対象領域 (ROI) を定義します。フィクスチャに関連する ROI を設定すると、フィクスチャが回転または移動した場合に、フィクスチャに対応して ROI を確実に回転または移動できます。 デフォルト設定は画像の左上隅で、(0, 0, 0) になります。
|
||||||||||||
領域 |
これは対象領域 (ROI) とも呼ばれ、解析の対象となる画像の領域を表します。変換および回転可能な矩形の画像領域を作成します。このパラメータを選択して、プロパティシートのツールバーにある [領域の最大化] ボタンを押すと、画像全体が対象になるように領域が自動的に拡張されます。
|
||||||||||||
注 : [フィクスチャ] および [領域] パラメータは、画像の範囲内で定義されている必要があります。画像の範囲内で定義されていない場合、この関数は #ERR を返します。
|
|||||||||||||
検出する数 | この関数が返すエッジの最大数を指定します (1 ~ センサの画像の幅 - 1、デフォルト = 3)。特定の In-Sight ビジョンシステムが画像を取り込んでいる場合、検出されるエッジの最大数は画像の幅より 1 少ない数になります (つまり、In-Sight 5100 ビジョンシステムの最大数は 639 で、ビジョンシステムの画像解像度 640×480 より 1 少ない数になります)。 | ||||||||||||
しきい値:黒→白 | 黒→白エッジコントラストの許容可能な最小値を指定します (0 ~ 100、デフォルト = 25)。FindMultiLine 関数は、コントラスト得点が [しきい値:黒→白] を下回る黒→白エッジを拒否します。エッジコントラストは、スキャン領域のグレースケールヒストグラムによって正規化されます。 | ||||||||||||
しきい値:白→黒 | 白→黒エッジコントラストの許容可能な最小値を指定します (0 ~ 100、デフォルト = 25)。FindMultiLine 関数は、コントラスト得点が [しきい値:白→黒] を下回る白→黒エッジを拒否します。エッジコントラストは、スキャン領域のグレースケールヒストグラムによって正規化されます。 | ||||||||||||
スコアの正規化 |
エッジスコアを領域のグレースケールヒストグラムで正規化するかどうかを指定します。[スコアの正規化] を有効にすると、次の式を使うことで、画像領域内で見つかった最大コントラストで生エッジスコアが正規化されます。 スコア = (生エッジスコア)×(100/最大コントラスト) 生エッジスコアは、エッジ全体のグレースケール階調の差で、最大コントラストは、画像領域内の最大および最小グレースケール階調 (0 ~ 255) の差です。 [スコアの正規化] を無効にすると、低コントラストのエッジのスコアは、高コントラストのエッジよりも低くなります。次の式が使用されます。 スコア = (生エッジスコア)×(100/255)
ヒント : このパラメータは、低コントラスト領域でエッジを見つける場合に有用です。検出対象のエッジが高コントラストだけの場合は、このパラメータを無効にします。
|
||||||||||||
検索 |
関数が複数のエッジ候補から 1 つのエッジを選択する際に使用するエッジ選択手法を指定します。
|
||||||||||||
角度範囲 |
エッジの回転に対する関数の許容範囲を指定します (0 ~ 10、デフォルト = 0)。この関数は、指定された範囲外のエッジも検出しますが、精度は高くないことがあります。 注 : このパラメータを 0 より大きい値に設定すると、関数の速度が低下します。
|
||||||||||||
エッジ幅 | エッジ変化が起きるピクセル距離を指定します (1 ~ 50、デフォルト = 3)。[エッジ幅] は、エッジが抽出される前に画像をフィルタ処理するために使用されます。 | ||||||||||||
表示 |
画像上の FindMultiLine グラフィックスオーバレイの表示モードを指定します。
|
FindMultiLineの出力
戻り値 | 複数の直線エッジセグメントを含んでいるエッジデータ構造体。入力パラメータが無効であれば #ERR を返します。 |
結果 | FindMultiLine 関数を初めてセルに挿入すると、スプレッドシート内に結果テーブルが自動的に作成されます。 |
FindMultiLineデータアクセス関数
データアクセス関数がスプレッドシートに自動挿入され、結果テーブルが作成されます。
検出数 | GetNFound(エッジ) | 検出数は検出されたエッジの数です。 |
次のデータアクセス関数を使用して、そのほかのデータの取得ができます。
角度 | GetAngle(エッジ, インデックス) | 指定したエッジの角度。 |
行 0 | GetRow(エッジ, エッジインデックス, 0) | 始点の行座標。 |
列 0 | GetCol(エッジ, エッジインデックス, 0) | 始点の列座標。 |
行 1 | GetRow(エッジ, エッジインデックス, 1) | 終点の行座標。 |
列 1 | GetCol(エッジ, エッジインデックス, 1) | 終点の列座標 |
得点 | GetScore(エッジ, エッジインデックス) | エッジコントラストの得点。得点は黒→白の場合は正の値、白→黒の場合は負の値になります。 |