直線に近いエッジ点列の取得 (整数版)

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

Syntax

C#
public static CFviEdgeResultI32 GetSupportEdges(
	F_LH_LINE line,
	CFviEdgeResultI32 edges,
	int err_r,
	int err_q
)
Visual Basic
Public Shared Function GetSupportEdges ( 
	line As F_LH_LINE,
	edges As CFviEdgeResultI32,
	err_r As Integer,
	err_q As Integer
) As CFviEdgeResultI32

Parameters

line
Type: fvalgcli..::..F_LH_LINE
直線ハフ検出データ
edges
Type: FVIL.Edge..::..CFviEdgeResultI32
エッジ点列 (1点以上)
err_r
Type: System..::..Int32
ρ方向許容誤差 (0~)
err_q
Type: System..::..Int32
θ方向許容誤差 (0~)

Return Value

Type: CFviEdgeResultI32
直線に近いエッジ点列を取得して返します。

Remarks

回答の点群はx座標またはy座標に関してソートされます。 ソートの方法は、引数 sort_type に指定されたオブジェクトに格納されます。 ユーザ側から、ソート方法を指定することは出来ません。

line には、 LineHough(CFviEdgeResultI32, CFviLineHoughParam) で得られた結果(複数の直線)の内の1つを指定してください。

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

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

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

処理に失敗した場合は例外を発行します。 例外の原因と発生位置を特定するには、発行された例外クラスの ErrorCode メンバと FunctionEx メンバを参照してください。


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

Examples

この関数は、 GetSupportEdges(F_LH_LINE, CFviEdgeResultI32, Int32, Int32, SortType%) でソート方法の取得を省略することと同様です。

Exceptions

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

See Also