FindCircle

円環画像領域内で単一の円形状エッジを探します。FindCircle 関数は、半径が大きくなる方向にスキャンされた、同心円上のピクセル値を合計することによって、画像領域の 1 次元プロジェクションを形成します。投影された画像データからエッジ遷移が抽出されます。

FindCircleの入力パラメータ

Syntax:FindCircle(画像,フィクスチャ.行,フィクスチャ.列,フィクスチャ.角度,ドーナツ領域.X,ドーナツ領域.Y,ドーナツ領域.内側半径,ドーナツ領域.外側半径,極性,検索,アクセプトしきい値,スコアの正規化,エッジ幅,表示)

画像 画像データ構造体を含んだスプレッドシートセルを参照するように指定します。デフォルトでは、このパラメータは、AcquireImage 画像データ構造体を含むセル A0 を参照しています。また、このパラメータは、ビジョンツールのグラフィックス関数や、座標補正関数により返された、そのほかの画像データ構造体も参照できます。
フィクスチャ

フィクスチャ入力、またはビジョンツール関数の画像座標系の出力に関連する対象領域 (ROI) を定義します。フィクスチャに関連する ROI を設定すると、フィクスチャが回転または移動した場合に、フィクスチャに対応して ROI を確実に回転または移動できます。

デフォルト設定は画像の左上隅で、(0, 0, 0) になります。

画像座標での行オフセット。
画像座標での列オフセット
角度 画像座標系での方位角
ドーナツ領域

これは対象領域 (ROI) とも呼ばれ、解析の対象となる画像の領域を表します。変換および回転可能なドーナツ状画像領域を作成します。このパラメータを選択して、プロパティシートのツールバーにある [領域の最大化] ボタンを押すと、画像全体が対象になるように領域が自動的に拡張されます。

X フィクスチャ座標での原点の X オフセット
Y フィクスチャ座標での原点の Y オフセット
内側の半径 内側の半径のサイズ。
外側の半径 外側の半径のサイズ。
:  [フィクスチャ] パラメータと [ドーナツ領域] パラメータは、画像の範囲内で定義されている必要があります。画像の範囲内で定義されていない場合、この関数は #ERR を返します。
極性

領域の scan direction に対する、特定対象のエッジの極性を指定します。この関数は、指定された極性のエッジだけを報告します。

0 = 黒→白 エッジ極性が黒→白になるように指定します。
1 = 白→黒 エッジ極性が白→黒になるように指定します。
2 = 任意 (デフォルト) エッジ極性が黒→白または白→黒に変化するように指定します。
検索

関数が複数のエッジ候補から 1 つのエッジを選択する際に使用するエッジ選択手法を指定します。

0 = 最高得点 (デフォルト) 最高スコアのエッジが注目されるように指定します。
1 = 最小の円 検出された最小の円に注目するように指定します。
2 = 最大の円 検出された最大の円に注目するように指定します。
アクセプトしきい値 最小許容エッジコントラストを指定します (0 ~ 100、デフォルト = 25)。コントラスト値は、領域内のグレースケールヒストグラムから 0 ~ 100 の範囲で正規化されます。この関数は、コントラストスコアがこの値を下回るエッジを拒否します。
スコアの正規化

エッジスコアを領域のグレースケールヒストグラムで正規化するかどうかを指定します。[スコアの正規化] を有効にすると、次の式を使うことで、画像領域内で見つかった最大コントラストで生エッジスコアが正規化されます。

スコア = (生エッジスコア)×(100/最大コントラスト)

生エッジスコアは、エッジ全体のグレースケール階調の差で、最大コントラストは、画像領域内の最大および最小グレースケール階調 (0 ~ 255) の差です。

[スコアの正規化] を無効にすると、低コントラストのエッジのスコアは、高コントラストのエッジよりも低くなります。次の式が使用されます。

スコア = (生エッジスコア)×(100/255)

0 = OFF スコアを正規化しないでください。
1 = ON (デフォルト) スコアを正規化します。
ヒント :  このパラメータは、低コントラスト領域でエッジを見つける場合に有用です。検出対象のエッジが高コントラストだけの場合は、このパラメータを無効にします。
エッジ幅 エッジ変化が起きるピクセル距離を指定します (1 ~ 50、デフォルト = 3)[エッジ幅] は、エッジが抽出される前に画像をフィルタ処理するために使用されます。
表示

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

0 = 非表示 (デフォルト) FindCircle 関数を含んでいるセルがスプレッドシート内のアクティブセルである場合を除き、すべてのグラフィックスが表示されません。
1 = 結果のグラフィックスのみ 円状形エッジが常に表示されます。
2 = 入力と結果のグラフィックス 入力画像領域と円状形エッジが両方とも常に表示されます。
3 = すべて表示: 入力、結果、およびチャート 入力画像領域、円状形エッジ、およびエッジのレスポンスチャートが常に表示されます。

FindCircleの出力

戻り値 単一の円状形エッジを含むエッジデータ構造体。入力パラメータが無効であれば #ERR を返します。
結果 FindCircle 関数を初めてセルに挿入すると、スプレッドシート内に結果テーブルが自動的に作成されます。

FindCircleデータアクセス関数

次のデータアクセス関数がスプレッドシートに自動挿入され、結果テーブルが作成されます。

中心行 GetRow(エッジ, 0, 0) 中心行
中心列 GetCol(エッジ, 0, 0) 中心列
半径 GetRadius(エッジ, 0) 半径
得点 GetScore(エッジ, 0) エッジコントラストの得点得点は黒→白の場合は正の値、白→黒の場合は負の値になります。