# FindLine

画像領域内の単一の直線エッジを検出します。FindLine は、領域のローカル座標系に対して正の Y 方向にスキャンして、放射線セグメントのピクセル値を合計することにより、画像領域の 1 次元投影を形成します。投影された画像データからエッジ遷移が抽出されます。

## FindLine の入力

パラメータ | 説明
画像 | このパラメータは、スプレッドシートで画像データ構造体を含むセルを参照する必要があります。デフォルトでは、このパラメータは、データ構造体を含むセル A0 を参照しています。また、このパラメータは、画像データアクセス関数や、座標補正関数により返された、その他の画像データ構造体も参照できます。
フィクスチャ | Fixture入力、またはビジョンツール関数の画像座標系の出力に関連する対象領域 (ROI) を定義します。フィクスチャに関連する ROI を設定すると、フィクスチャが回転または移動した場合に、フィクスチャに対応して ROI を確実に回転または移動できます。 デフォルト設定は画像の左上隅で、(0, 0, 0) になります。
X | 画像座標での X オフセット。
Y | 画像座標での Y オフセット。
角度 | 画像座標系での画像の X 軸からの回転 (時計回り +/-360 度)。
領域 | これは対象領域 (ROI) とも呼ばれ、解析の対象となる画像の領域を表します。[領域] パラメータをダブルクリックすると、変換と回転が可能な対話型グラフィックスモードを作成できます。このパラメータを選択して、プロパティシートの [ジョブの編集] ツールバーにある [領域の最大化] ボタンを押すと、画像全体が対象になるように領域が自動的に拡張されます。
X | フィクスチャ座標での原点の X オフセット
Y | フィクスチャ座標での原点の Y オフセット
幅 | 領域の X 軸に沿った寸法
高さ | 領域の Y 軸に沿った寸法
角度 | フィクスチャ座標での角度
カーブ | 領域の X 軸と反対側の境界線との間の角度変位
注: [フィクスチャ] および [領域] パラメータは、画像の範囲内で定義されている必要があります。画像の範囲内で定義されていない場合、この関数は #ERR を返します。
極性 | エッジ領域のスキャン方向を基準として、配置するエッジの極性を指定します。この関数は、指定された極性のエッジのみを報告します。 注: 水平または垂直の直線エッジ特徴をフィクスチャ入力として使用する場合、この関数は、ROI のスキャン方向の位置に応じて、水平軸または垂直軸に沿った一方向のエッジの動きのみを考慮します。
0 = 黒→白 | エッジの極性を黒→白に指定します。
1 = 白→黒 | エッジの極性を白→黒に指定します。
2 = 任意 (デフォルト) | エッジの極性を黒→白または白→黒のいずれかになるように指定します。
検出する基準 | 複数のエッジ候補の中からエッジを選択する方法を指定します。
0 = 最高得点 (デフォルト) | 最高得点のエッジに注目するように指定します。
1 = 最初のエッジ | 検出された最初のエッジに注目するように指定します。
2 = 最後のエッジ | 検出された最後のエッジに注目するように指定します。
アクセプトしきい値 | 許容できる最小エッジコントラストを指定します (0 ～ 100、デフォルト = 25)。コントラスト値は、領域内のグレースケールヒストグラムから 0 ～ 100 のスケールに正規化したものです。コントラスト得点がこの値を下回るエッジは拒否されます。
スコアの正規化 | エッジ得点を領域のグレースケールヒストグラムで正規化するかどうかを指定します。[スコアの正規化] が有効な場合、未処理のエッジ得点は、次の式を使用して、画像領域内で検出された最大コントラストで正規化されます。 得点 = (未処理のエッジ得点) x (100/最大コントラスト) ここで、未処理のエッジ得点はエッジ全体のグレーレベルの差であり、最大コントラストは画像領域内の最大と最小のグレーレベル (0 ～ 255) の差です。 [スコアの正規化] が無効な場合、低コントラストのエッジは高コントラストのエッジより得点が低くなります。次の式が使用されます。 得点＝ (未処理のエッジ得点) x (100/255)
0 = OFF | 得点を正規化しません。
1 = ON (デフォルト) | 得点を正規化します。
ヒント: このパラメータは、低コントラスト領域でエッジを見つける場合に有用です。検出対象のエッジが高コントラストだけの場合は、このパラメータを無効にします。
角度範囲 | エッジの回転に対する関数の許容値を指定します (0 ～ 10、デフォルト = 0)。この関数は、指定された範囲外のエッジも検出しますが、精度は高くない可能性があります。 注: このパラメータを 0 より大きい値に設定すると、関数の処理速度が低下します。
エッジ幅 | エッジ変化が起きるピクセル距離を指定します (1～50、デフォルト = 3)。エッジを抽出する前にエッジ幅を使用して画像をフィルタ処理します。
表示 | 画像上の FindLine グラフィックスオーバレイの表示モードを指定します。
0 = 非表示 (デフォルト) | FindLine 関数を含んでいるセルがスプレッドシート内のアクティブセルである場合を除き、すべてのグラフィックスが表示されません。
1 = 結果のグラフィックスのみ | 直線エッジが常に表示されます。
2 = 入力と結果のグラフィックス | 入力画像領域と直線エッジが常に表示されます。
3 = すべて表示: 入力、結果、およびチャート | 入力画像領域、直線エッジ、およびエッジのレスポンスチャートが常に表示されます。 注: エッジのレスポンスチャートは、ドッキング可能なウィンドウです。詳細については、「スプレッドシートエディタ – チャート」のトピックを参照してください。

## FindLine の出力

戻り値 | 単一の直線エッジセグメントを含むエッジデータ構造体。入力パラメータが無効であれば #ERR を返します。
結果 | FindLine が初めてセルに挿入されると、スプレッドシート内に結果テーブルが作成されます。 次のエッジデータアクセス関数がスプレッドシートに自動挿入され、結果テーブルが作成されます。
ラベル | 関数 | 説明
--- | --- | ---
X0 | GetX(エッジ,0,0) | 始点の行座標。
Y0 | GetY(エッジ,0,0) | 始点の列座標。
X1 | GetX(エッジ,0,1) | 終点の行座標。
Y1 | GetY(エッジ,0,1) | 終点の列座標。
得点 | GetScore(エッジ,0) | エッジコントラストの得点。得点は黒→白の場合は正の値、白→黒の場合は負の値になります。