直線に近いエッジ点列の取得(エッジ検出結果を使用する)

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

Syntax

C#
public static List<CFviEdgeData> GetSupportEdges(
	CFviLineHoughData line,
	CFviEdgeResult edges,
	int err_r,
	int err_q,
	Enum sort_type
)
Visual Basic
Public Shared Function GetSupportEdges ( 
	line As CFviLineHoughData,
	edges As CFviEdgeResult,
	err_r As Integer,
	err_q As Integer,
	sort_type As Enum
) As List(Of CFviEdgeData)

Parameters

line
Type: FVIL.Hough..::..CFviLineHoughData
直線ハフ検出データ
edges
Type: FVIL.Edge..::..CFviEdgeResult
エッジ点列 (1点以上)
err_r
Type: System..::..Int32
ρ方向許容誤差 (0~)
err_q
Type: System..::..Int32
θ方向許容誤差 (0~)
sort_type
Type: System..::..Enum
ソート方法 (※省略時は null 指定)

Return Value

Type: List<(Of <(<'CFviEdgeData>)>)>
直線に近いエッジ点列を取得して返します。 回答の点群はx座標またはy座標に関してソートされます。 ソートの方法は、引数 sort_type に指定されたオブジェクトに格納されます。 sort_typenull が指定された場合はソート方法の取得を省略します。 ユーザ側から、ソート方法を指定することは出来ません。

Remarks

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

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

err_r はエッジ点が直線の近くにあるかどうかを判定するための値です。 具体的には、直線とエッジ点との距離が err_r 以内の場合、 このエッジ点が直線の近くにあると判定されます。(下図参照)

err_q はエッジ点が直線の真のエッジ点であるかどうかを判定するための値です。 具体的には、直線の向きとエッジ点の向きとの差の絶対値が err_q 以内の場合、 このエッジ点が直線の真のエッジであると判定されます。(下図参照)

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

エラーコード:

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

Exceptions

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

See Also