フェレ径の取得

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

Syntax

C#
public virtual double GetFeretDiameter(
	double theta,
	int mode
)
Visual Basic
Public Overridable Function GetFeretDiameter ( 
	theta As Double,
	mode As Integer
) As Double

Parameters

theta
Type: System..::..Double
計測角度(ラジアン)
mode
Type: System..::..Int32
画素領域モード (0:点で計測,1:矩形の広がりを持つ点で計測)

Return Value

Type: Double

ブローブの指定角度におけるフェレ径を取得します。

Remarks

フェレ径は、座標点の広がりを考える場合と、考えない場合の2通りの計測モードがあります。 座標点の広がりを考えないモードでは、1点のみの領域はどの角度で計測してもフェレ径の値は 0 となります。

座標点の広がりを考えるモードでは、領域の面積が1画素以上有る場合、出力のフェレ径の値は 1.0 以上となります。 (例えば 1 点のみの領域の場合で角度が 0 度、または±90度のときに 1.0 が出力されます。) 領域内の1点は幅1の正方矩形領域であるという定義の下に幅計測します。 例えば、領域上の座標(x,y)の点は、左上(x-0.5,y-0.5)、左下(x-0.5,y+0.5)、右下(x+0.5,y+0.5)、右上(x+0.5,y-0.5)で囲まれる矩形領域とみなします。 この時、1画素のみの領域を45度で計測したフェレ径の値は となります。

4画素の正方形領域に対して、45度でのフェレ径の、各モードでの例を下図に示します。

■ フェレ径(Feret's diameter)とは

フェレ径とは、物体が2本の平行な直線によって挟まれた時の2直線の距離です。 下図の F は、斜めに傾いた2直線に領域が挟まれた場合の直線間距離ですが、これがフェレ径のイメージです。 同じく下図の Fx が水平方向のフェレ径、 Fy が垂直方向のフェレ径になります。 なお点の広がりを考えた場合は、 Fxxdiff(Xmax-Xmin) と、 Fyydiff(Ymax-Ymin) とそれぞれ等しい値となります。

■ 角度について

引数の角度(theta)には幅を計測する軸とX軸がなす角度を入力してください。

解析結果ハンドルが無効な場合またはブローブ番号が無効な場合は例外を発行します。 例外の原因と発生位置を特定するには、発行された例外クラスの ErrorCode メンバと Function メンバを参照してください。

エラーコード:
ErrorCode メンバ内容
51FVIL.ErrorCode.LICENSE_ERROR ライセンスキーが見つからない為、実行できません。 または、 FVIL._SetUp.InitVisionLibrary が実行されていません。
12FVIL.ErrorCode.INVALID_OBJECTブローブ解析結果ハンドルが無効です。
11FVIL.ErrorCode.INVALID_PARAMETER引数が無効です。または、ブローブ番号が無効です。

Exceptions

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

See Also