直線の再検出(エッジ点列を使用する)

Namespace: FVIL.Hough
Assembly: FVILbasic (in FVILbasic.dll) Version: 3.1.0.0 (3.1.0.17)

Syntax

C#
public static CFviLineHoughData RefineByLSM(
	CFviLineHoughData line,
	IEnumerable<CFviEdgeData> edges,
	int err_r,
	int err_q
)
Visual Basic
Public Shared Function RefineByLSM ( 
	line As CFviLineHoughData,
	edges As IEnumerable(Of CFviEdgeData),
	err_r As Integer,
	err_q As Integer
) As CFviLineHoughData

Parameters

line
Type: FVIL.Hough..::..CFviLineHoughData
直線ハフ検出データ
edges
Type: System.Collections.Generic..::..IEnumerable<(Of <(<'CFviEdgeData>)>)>
エッジ点列 (1点以上)
err_r
Type: System..::..Int32
ρ方向許容誤差 (0~)
err_q
Type: System..::..Int32
θ方向許容誤差 (0~)

Return Value

Type: CFviLineHoughData
直線係数を最小二乗法で求め直します。

Remarks

指定された1本の直線とエッジ点群から、その直線の近くにあると判定される点群を選び出し、 これらに対して最小二乗法で直線の方程式を求め直します。

line には、直線ハフ検出 で得られた 結果(複数の直線) の内の1つを指定してください。

edges には、直線の近くにある可能性のあるエッジ点列を指定します。 直線ハフ検出 で指定したエッジ点列をそのまま入力して構いません。 若しくは、何らかの方法によって候補を絞ったものを入力しても結構です。 このエッジ点列の中から直線上にある点が選ばれます。

err_r 及び err_q は、直線付近のエッジ点群を選び出す為に使用します。 詳しくは、 GetSupportEdges(CFviLineHoughData, IEnumerable<(Of <<'(CFviEdgeData>)>>), Int32, Int32, Enum) の解説をご参照ください。

正常に実行できなかった場合は例外を発行します。 例外の原因と発生位置を特定するには、発行された例外クラスの ErrorCode メンバと Function メンバを参照してください。

エラーコード:

ErrorCode メンバ内容
51FVIL.ErrorCode.LICENSE_ERROR ライセンスキーが見つからない為、実行できません。 または、 FVIL._SetUp.InitVisionLibrary が実行されていません。
11FVIL.ErrorCode.INVALID_PARAMETERパラメータに誤りがあります。
1FVIL.ErrorCode.FAILED_TO_ALLOCATEメモリの確保に失敗しました。
29FVIL.ErrorCode.NOT_CALCULABLE計算不可能です。

Exceptions

ExceptionCondition
FVIL..::..CFviExceptionこの例外の原因については、上記のエラーコード表をご参照ください。

See Also