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