WIL説明書(C++)  3.1.0
全メンバ一覧 | 公開型 | 公開メンバ関数
FVCL::Blob::CFvBlobData クラス

2値ブローブ解析データ構造クラス [詳解]

詳解

2値ブローブ解析データ構造クラス

namespace FVCL::Blob

2値ブローブ解析の実行結果の1つ分を保有するクラスです。
全般的な内容については、モジュールの 解説 をご参照ください。

必要条件:
ヘッダー: FVCLbasic.h
留意事項:
このクラスは、2値ブローブ解析結果クラス(CFvBlobResult)が 保有するハンドルとブローブ番号を保有しています。 2値ブローブ解析結果クラス(CFvBlobResult)のオブジェクトが 開放されるとハンドルも開放されますので、このクラスが保有するハンドルも 無効になります。
参照
CFvBlob
CFvBlobResult
+ FVCL::Blob::CFvBlobData の継承関係図

公開型

enum  { DataID = 1100 }
 

公開メンバ関数

 CFvBlobData ()
 コンストラクタ [詳解]
 
 CFvBlobData (const CFvBlobData &src)
 コピーコンストラクタ [詳解]
 
 CFvBlobData (FHANDLE handle, UINT blobno)
 初期値指定コンストラクタ [詳解]
 
virtual ~CFvBlobData ()
 デストラクタ [詳解]
 
virtual INT GetDataID () const
 データIDの取得 [詳解]
 
virtual bool GetPointer (INT id, void **val) const
 インスタンスのthisポインタの取得 [詳解]
 
bool SetHandle (FHANDLE handle)
 2値ブローブ解析結果ハンドルの設定 [詳解]
 
FHANDLE GetHandle () const
 2値ブローブ解析結果ハンドルの取得 [詳解]
 
bool SetBlobNo (UINT blobno)
 ブローブ番号の設定 [詳解]
 
UINT GetBlobNo () const
 ブローブ番号の取得 [詳解]
 
bool IsValid () const
 2値ブローブの有効性の確認 [詳解]
 
FVCL::Data::CFvRegion GetRegion () const
 リージョンの取得 [詳解]
 
bool GetRegion (FVCL::Data::CFvRegion *region) const
 リージョンの取得 [詳解]
 
UINT GetColor () const
 色の取得 [詳解]
 
bool GetColor (UINT *color) const
 色の取得 [詳解]
 
UINT GetArea () const
 面積の取得 [詳解]
 
bool GetArea (UINT *area) const
 面積の取得 [詳解]
 
UINT GetAreaWithHole () const
 面積(穴面積含む)の取得 [詳解]
 
bool GetAreaWithHole (UINT *area) const
 面積(穴面積含む)の取得 [詳解]
 
UINT GetHoleNum () const
 穴数の取得 [詳解]
 
bool GetHoleNum (UINT *holes) const
 穴数の取得 [詳解]
 
UINT GetHoleArea () const
 穴面積の取得 [詳解]
 
bool GetHoleArea (UINT *area) const
 穴面積の取得 [詳解]
 
DOUBLE GetHoleRatio () const
 穴面積比の取得 [詳解]
 
bool GetHoleRatio (DOUBLE *ratio) const
 穴面積比の取得 [詳解]
 
DOUBLE GetDistanceToChildsMax () const
 子供ブローブ間距離の取得 (最大値) [詳解]
 
DOUBLE GetDistanceToChildsMin () const
 子供ブローブ間距離の取得 (最小値) [詳解]
 
DOUBLE GetDistanceToChildsAve () const
 子供ブローブ間距離の取得 (平均値) [詳解]
 
bool GetDistanceToChilds (DOUBLE *max, DOUBLE *min, DOUBLE *ave) const
 子供ブローブ間距離の取得 [詳解]
 
DOUBLE GetDistanceToSiblingsMax () const
 隣接エリア(兄弟ブローブ)間距離の取得 (最大値) [詳解]
 
DOUBLE GetDistanceToSiblingsMin () const
 隣接エリア(兄弟ブローブ)間距離の取得 (最小値) [詳解]
 
DOUBLE GetDistanceToSiblingsAve () const
 隣接エリア(兄弟ブローブ)間距離の取得 (平均値) [詳解]
 
bool GetDistanceToSiblings (DOUBLE *max, DOUBLE *min, DOUBLE *ave) const
 隣接エリア(兄弟ブローブ)間距離の取得 [詳解]
 
INT GetXmin () const
 X座標最小値の取得 [詳解]
 
INT GetYmin () const
 Y座標最小値の取得 [詳解]
 
INT GetXmax () const
 X座標最大値の取得 [詳解]
 
INT GetYmax () const
 Y座標最大値の取得 [詳解]
 
bool GetXYrange (INT *xmin, INT *ymin, INT *xmax, INT *ymax) const
 XY座標の最大値と最小値の取得 [詳解]
 
INT GetXdiff () const
 外接矩形の横サイズの取得 [詳解]
 
INT GetYdiff () const
 外接矩形の縦サイズの取得 [詳解]
 
bool GetXYdiff (INT *xdiff, INT *ydiff) const
 外接矩形サイズの取得 [詳解]
 
INT GetXminAtYmin () const
 Yの最小位置におけるXの最小値の取得 [詳解]
 
INT GetXmaxAtYmax () const
 Yの最大位置におけるXの最大値の取得 [詳解]
 
INT GetYminAtXmax () const
 Xの最大位置におけるYの最小値の取得 [詳解]
 
INT GetYmaxAtXmin () const
 Xの最小位置におけるYの最大値の取得 [詳解]
 
bool GetMaxMinPos (INT *xmin_at_ymin, INT *xmax_at_ymax, INT *ymin_at_xmax, INT *ymax_at_xmin) const
 座標の最大最小位置の取得 [詳解]
 
INT64 GetMoment1SumX () const
 1次モーメントの取得 (X方向) [詳解]
 
INT64 GetMoment1SumY () const
 1次モーメントの取得 (Y方向) [詳解]
 
bool GetMoment1 (INT64 *sumx, INT64 *sumy) const
 1次モーメントの取得 [詳解]
 
UINT64 GetMoment2SumX () const
 2次モーメントの取得 (X方向) [詳解]
 
UINT64 GetMoment2SumY () const
 2次モーメントの取得 (Y方向) [詳解]
 
INT64 GetMoment2SumXY () const
 2次モーメントの取得 (XY方向) [詳解]
 
bool GetMoment2 (UINT64 *sumx, UINT64 *sumy, INT64 *sumxy) const
 2次モーメントの取得 [詳解]
 
DOUBLE GetCentralMoment2MG20 () const
 重心2次モーメントの取得 (X方向) [詳解]
 
DOUBLE GetCentralMoment2MG02 () const
 重心2次モーメントの取得 (Y方向) [詳解]
 
DOUBLE GetCentralMoment2MG11 () const
 重心2次モーメントの取得 (XY方向) [詳解]
 
bool GetCentralMoment2 (DOUBLE *mg20, DOUBLE *mg02, DOUBLE *mg11) const
 重心2次モーメントの取得 [詳解]
 
DOUBLE GetMoment3M30 () const
 3次モーメントの取得 (M30) [詳解]
 
DOUBLE GetMoment3M03 () const
 3次モーメントの取得 (M03) [詳解]
 
DOUBLE GetMoment3M21 () const
 3次モーメントの取得 (M21) [詳解]
 
DOUBLE GetMoment3M12 () const
 3次モーメントの取得 (M12) [詳解]
 
bool GetMoment3 (DOUBLE *m30, DOUBLE *m03, DOUBLE *m21, DOUBLE *m12) const
 3次モーメントの取得 [詳解]
 
DOUBLE GetCentralMoment3MG30 () const
 重心3次モーメントの取得 (MG30) [詳解]
 
DOUBLE GetCentralMoment3MG03 () const
 重心3次モーメントの取得 (MG03) [詳解]
 
DOUBLE GetCentralMoment3MG21 () const
 重心3次モーメントの取得 (MG21) [詳解]
 
DOUBLE GetCentralMoment3MG12 () const
 重心3次モーメントの取得 (MG12) [詳解]
 
bool GetCentralMoment3 (DOUBLE *mg30, DOUBLE *mg03, DOUBLE *mg21, DOUBLE *mg12) const
 重心3次モーメントの取得 [詳解]
 
DOUBLE GetMoment (INT xn, INT yn) const
 N次モーメントの取得 [詳解]
 
DOUBLE GetCentralMoment (INT xn, INT yn) const
 重心N次モーメントの取得 [詳解]
 
FVCL::Data::CFvPoint GetCenter () const
 重心の取得 [詳解]
 
bool GetCenter (FVCL::Data::CFvPoint *center) const
 重心の取得 [詳解]
 
FVCL::Data::CFvEllipse GetEquivalentEllipse () const
 等価楕円の取得 [詳解]
 
bool GetEquivalentEllipse (FVCL::Data::CFvEllipse *ellipse) const
 等価楕円の取得 [詳解]
 
FVCL::Data::CFvCircle GetEquivalentDisk () const
 面積等価円の取得 [詳解]
 
bool GetEquivalentDisk (FVCL::Data::CFvCircle *disk) const
 面積等価円の取得 [詳解]
 
FVCL::Data::CFvCircle GetEquivalentCircle () const
 周囲長等価円の取得 [詳解]
 
bool GetEquivalentCircle (FVCL::Data::CFvCircle *circle) const
 周囲長等価円の取得 [詳解]
 
FVCL::Data::CFvRectangle GetRect1 () const
 外接矩形の取得 (傾きなし) [詳解]
 
UINT GetRect1Area () const
 外接矩形面積の取得 [詳解]
 
bool GetRect1Area (UINT *area) const
 外接矩形面積の取得 [詳解]
 
DOUBLE GetRect1Lratio () const
 外接矩形縦横比の取得 [詳解]
 
bool GetRect1Lratio (DOUBLE *ratio) const
 外接矩形縦横比の取得 [詳解]
 
DOUBLE GetRect1Sratio () const
 外接矩形面積比の取得 [詳解]
 
bool GetRect1Sratio (DOUBLE *ratio) const
 外接矩形面積比の取得 [詳解]
 
FVCL::Data::CFvRectangle GetRect2 () const
 外接長方形の取得 (傾きあり) [詳解]
 
FVCL::CFvArray< FVCL::Data::CFvPointGetRect2Pos () const
 外接長方形の頂点座標の取得 [詳解]
 
bool GetRect2Pos (FVCL::CFvMultiData< FVCL::Data::CFvPoint > *points) const
 外接長方形の頂点座標の取得 [詳解]
 
DOUBLE GetRect2Lsize () const
 外接長方形横長の取得 [詳解]
 
DOUBLE GetRect2Wsize () const
 外接長方形縦長の取得 [詳解]
 
bool GetRect2Size (DOUBLE *lsize, DOUBLE *wsize) const
 外接長方形の取得 [詳解]
 
DOUBLE GetRect2Area () const
 外接長方形面積の取得 [詳解]
 
bool GetRect2Area (DOUBLE *area) const
 外接長方形面積の取得 [詳解]
 
DOUBLE GetRect2Lratio () const
 外接長方形縦横比の取得 [詳解]
 
bool GetRect2Lratio (DOUBLE *ratio) const
 外接長方形縦横比の取得 [詳解]
 
DOUBLE GetRect2Sratio () const
 外接長方形面積比の取得 [詳解]
 
bool GetRect2Sratio (DOUBLE *ratio) const
 外接長方形面積比の取得 [詳解]
 
DOUBLE GetFeretDiameter (DOUBLE theta, INT mode) const
 フェレ径の取得 [詳解]
 
bool GetFeretDiameter (DOUBLE theta, INT mode, DOUBLE *diameter) const
 フェレ径の取得 [詳解]
 
DOUBLE GetFeretDiameterMax () const
 最大フェレ径の取得 [詳解]
 
DOUBLE GetFeretDiameterMaxTheta () const
 最大フェレ径の角度の取得 [詳解]
 
DOUBLE GetFeretDiameterMin () const
 最小フェレ径の取得 [詳解]
 
DOUBLE GetFeretDiameterMinTheta () const
 最小フェレ径の角度の取得 [詳解]
 
bool GetFeretDiameterMaxMin (DOUBLE *feretmax, DOUBLE *fmax_theta, DOUBLE *feretmin, DOUBLE *fmin_theta) const
 最大フェレ径と最小フェレ径の取得 [詳解]
 
DOUBLE GetPerimeter () const
 周囲長の取得 [詳解]
 
bool GetPerimeter (DOUBLE *perimeter) const
 周囲長の取得 [詳解]
 
DOUBLE GetPPS () const
 面積周囲長比の取得 [詳解]
 
bool GetPPS (DOUBLE *pps) const
 面積周囲長比の取得 [詳解]
 
FVCL::CFvArray< FVCL::Data::CFvPointGetConvex2d () const
 凸包の取得 [詳解]
 
bool GetConvex2d (FVCL::CFvMultiData< FVCL::Data::CFvPoint > *points) const
 凸包の取得 [詳解]
 
bool GetConvex2d (FVCL::CFvBuffer< PNT_T > *points) const
 凸包の取得 [詳解]
 
DOUBLE GetConvexArea () const
 凸包面積の取得 [詳解]
 
DOUBLE GetConvexPerim () const
 凸包周囲長の取得 [詳解]
 
bool GetConvexFeature (DOUBLE *convex_area, DOUBLE *convex_perim) const
 凸包面積・周囲長の取得 [詳解]
 
DOUBLE GetConvexAreaRatio () const
 凸包面積比の取得 [詳解]
 
DOUBLE GetConvexPerimRatio () const
 凸包周囲長比の取得 [詳解]
 
bool GetConvexRatio (DOUBLE *convex_area_ratio, DOUBLE *convex_perim_ratio) const
 凸包面積比・周囲長比の取得 [詳解]
 
FVCL::Data::CFvCircle GetCircmCircle () const
 最小外接円の取得 [詳解]
 
bool GetCircmCircle (FVCL::Data::CFvCircle *circle) const
 最小外接円の取得 [詳解]
 
FVCL::CFvArray< FVCL::Data::CFvPointGetBoundary () const
 周囲座標の取得 (External) [詳解]
 
bool GetBoundary (FVCL::CFvMultiData< FVCL::Data::CFvPoint > *points) const
 周囲座標の取得 (External) [詳解]
 
bool GetBoundary (FVCL::CFvBuffer< PNT_T > *points) const
 周囲座標の取得 (External) [詳解]
 
bool GetBoundaryEx (INT connection, FVCL::CFvBuffer< PNT_T > *points_ext, FVCL::CFvBuffer< PNT_T > *points_int, bool contain_stopper=true) const
 周囲座標の取得 [詳解]
 
FVCL::CFvArray< FVCL::Data::CFvPointGetBoundaryInternal () const
 周囲座標の取得 (Internal) [詳解]
 
bool GetBoundaryInternal (FVCL::CFvMultiData< FVCL::Data::CFvPoint > *points) const
 周囲座標の取得 (Internal) [詳解]
 
DOUBLE GetDistanceToBoundaryMax () const
 外周距離の取得 (最大値) [詳解]
 
DOUBLE GetDistanceToBoundaryMin () const
 外周距離の取得 (最小値) [詳解]
 
DOUBLE GetDistanceToBoundaryAve () const
 外周距離の取得 (平均値) [詳解]
 
DOUBLE GetDistanceToBoundarySigma () const
 外周距離の取得 (標準偏差) [詳解]
 
bool GetDistanceToBoundary (DOUBLE *max, DOUBLE *min, DOUBLE *ave, DOUBLE *sigma) const
 外周距離の取得 [詳解]
 
DOUBLE GetCircularity1 () const
 真円度#1の取得 [詳解]
 
bool GetCircularity1 (DOUBLE *circularity) const
 真円度#1の取得 [詳解]
 
DOUBLE GetCircularity2 () const
 真円度#2の取得 [詳解]
 
bool GetCircularity2 (DOUBLE *circularity) const
 真円度#2の取得 [詳解]
 
DOUBLE GetCircularity3 () const
 真円度#3の取得 [詳解]
 
bool GetCircularity3 (DOUBLE *circularity) const
 真円度#3の取得 [詳解]
 
virtual CFvBlobDataoperator= (const CFvBlobData &src)
 代入オペレータ [詳解]
 
virtual bool operator== (const CFvBlobData &src) const
 比較オペレータ(==) [詳解]
 
virtual bool operator!= (const CFvBlobData &src) const
 比較オペレータ(!=) [詳解]
 
- 基底クラス FVCL::CFvDataObject に属する継承公開メンバ関数
 CFvDataObject ()
 標準のコンストラクタ [詳解]
 
virtual ~CFvDataObject ()
 デストラクタ [詳解]
 
virtual bool Load (LPCTSTR szFileName)
 データファイルの読み込み [詳解]
 
virtual bool Save (LPCTSTR szFileName)
 データファイル保存 [詳解]
 
- 基底クラス FVCL::CFvObject に属する継承公開メンバ関数
 CFvObject ()
 標準のコンストラクタ [詳解]
 
virtual ~CFvObject ()
 デストラクタ [詳解]
 
INT SetErrorCode (INT err)
 エラーコードの設定 [詳解]
 
INT SetErrorCode (INT err) const
 エラーコードの設定 [詳解]
 
INT GetErrorCode () const
 エラーコードの取得 [詳解]
 
bool SetAllocateOption (INT value)
 画像領域確保時のオプションの設定 [詳解]
 
INT GetAllocateOption () const
 画像領域確保時のオプションの取得 [詳解]
 
void * operator new (size_t uiSize)
 new オペレータ [詳解]
 
void * operator new[] (size_t uiSize)
 new[] オペレータ [詳解]
 
void operator delete (void *pvObject)
 delete オペレータ [詳解]
 
void operator delete[] (void *pvObject)
 delete[] オペレータ [詳解]
 
void * operator new (size_t uiSize, LPCSTR szFileName, INT iLine)
 new オペレータ [詳解]
 
void * operator new[] (size_t uiSize, LPCSTR szFileName, INT iLine)
 new[] オペレータ [詳解]
 
void operator delete (void *pvObject, LPCSTR szFileName, INT iLine)
 delete オペレータ [詳解]
 
void operator delete[] (void *pvObject, LPCSTR szFileName, INT iLine)
 delete[] オペレータ [詳解]
 
virtual CFvObjectoperator= (const CFvObject &src)
 代入オペレータ [詳解]
 
virtual bool operator== (const CFvObject &src) const
 比較オペレータ (==) [詳解]
 
virtual bool operator!= (const CFvObject &src) const
 比較オペレータ (!=) [詳解]
 

その他の継承メンバ

- 基底クラス FVCL::CFvObject に属する継承静的公開メンバ関数
static bool SetDefaultAllocateOption (INT value)
 既定の画像領域確保時のオプションの設定 [詳解]
 
static INT GetDefaultAllocateOption ()
 既定の画像領域確保時のオプションの取得 [詳解]
 
- 基底クラス FVCL::CFvObject に属する継承限定公開メンバ関数
INT fnCPUCheck ()
 CPU情報の取得 [詳解]
 
- 基底クラス FVCL::CFvObject に属する継承限定公開変数類
INT m_ErrorCode
 エラーコード [詳解]
 
INT m_AllocateOption
 画像領域確保時のオプション [詳解]
 

列挙型メンバ詳解

anonymous enum
列挙値
DataID 

2値ブローブ解析データ構造クラスのデータID

このクラスのデータIDです。

構築子と解体子

FVCL::Blob::CFvBlobData::CFvBlobData ( )

コンストラクタ

標準のコンストラクタです。

FVCL::Blob::CFvBlobData::CFvBlobData ( const CFvBlobData src)

コピーコンストラクタ

同一クラスのオブジェクトの内容を複製して、このオブジェクトを構築します。

引数
[in]src複製元
FVCL::Blob::CFvBlobData::CFvBlobData ( FHANDLE  handle,
UINT  blobno 
)

初期値指定コンストラクタ

初期値を指定してオブジェクトを構築します。

引数
[in]handle2値ブローブ解析結果ハンドル
[in]blobnoブローブ番号
参照
GetHandle
SetHandle
SetBlobNo
GetBlobNo
FVCL::Blob::CFvBlobData::~CFvBlobData ( )
virtual

デストラクタ

このオブジェクトを破棄します。

関数詳解

FVCL::Blob::CFvBlobData::GetDataID ( ) const
virtual

データIDの取得

戻り値
データIDを返します。
参照
CFvBlobData::DataID

FVCL::CFvDataObjectを実装しています。

FVCL::Blob::CFvBlobData::GetPointer ( INT  id,
void **  val 
) const
virtual

インスタンスのthisポインタの取得

指定されたデータIDと自身のIDが一致する場合に thisポインタを返します。

引数
[in]idデータID
[out]valthisポインタを格納する変数へのポインタ
戻り値
true正常
false異常
参照
CFvBlobData::DataID

FVCL::CFvDataObjectを実装しています。

FVCL::Blob::CFvBlobData::SetHandle ( FHANDLE  handle)

2値ブローブ解析結果ハンドルの設定

2値ブローブ解析結果ハンドルを設定します。

引数
[in]handle2値ブローブ解析結果ハンドル
戻り値
true正常
false異常
解説:
このメソッドは本クラスライブラリの内部で使用するものです。 ユーザがこのメソッドを使用することはありません。
FVCL::Blob::CFvBlobData::GetHandle ( ) const

2値ブローブ解析結果ハンドルの取得

現在設定されているハンドルを取得します。

戻り値
2値ブローブ解析結果ハンドルを返します。
解説:
このハンドルは本クラスライブラリの内部で使用するものです。 ユーザがこのメソッドから得られるハンドルを使用することはありません。
FVCL::Blob::CFvBlobData::SetBlobNo ( UINT  blobno)

ブローブ番号の設定

引数
[in]blobnoブローブ番号
0~ (CFvBlobResult::GetCount()-1)
戻り値
true正常
false異常
FVCL::Blob::CFvBlobData::GetBlobNo ( ) const

ブローブ番号の取得

現在設定されているブローブ番号を取得します。

戻り値
ブローブ番号を返します。
FVCL::Blob::CFvBlobData::IsValid ( ) const

2値ブローブの有効性の確認

現在保有している2値ブローブが有効ブローブか否かを検査します。

戻り値
true有効
false無効
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
51 FVCL_ErrorCode::LICENSE_ERROR ライセンスがありません。
11 FVCL_ErrorCode::INVALID_PARAMETER ブローブ番号が無効です。
12 FVCL_ErrorCode::INVALID_OBJECT 2値ブローブ解析結果ハンドルが無効です。
FIE:
fnFIE_measure_get_is_valid
FVCL::Blob::CFvBlobData::GetRegion ( ) const

リージョンの取得

現在のブローブをリージョンオブジェクトとして取得します。

戻り値
リージョンオブジェクトを返します。
例外
FVCL::CFveException処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode からエラーコードを取得できます。
エラーコード:
定数 内容
51 FVCL_ErrorCode::LICENSE_ERROR ライセンスがありません。
1 FVCL_ErrorCode::FAILED_TO_ALLOCATE メモリが不足しています。
11 FVCL_ErrorCode::INVALID_PARAMETER ブローブ番号が無効です。
12 FVCL_ErrorCode::INVALID_OBJECT 2値ブローブ解析結果ハンドルが無効です。
解説:
このブローブの領域情報をリージョンオブジェクトとして取得します。 現在の ブローブ番号 が、 有効ブローブ の番号でなければなりません。 単色解析モードの際は、ブローブ番号 0 番は存在しますが、 解析が行われていない仮想ブローブになる為、取得不可能です。
この関数は、対象ブローブのリージョン情報の複製を取得します。 取得したリージョンオブジェクトへ操作しても、このブローブに影響を与えません。
連結性について:
取得されるリージョンオブジェクトの連結性設定は、ブローブの連結性を受け継ぎます。
例) 8連結 (前景:白/背景:黒)で解析した場合
  • 前景ブローブ → リージョンは8連結
  • 背景ブローブ → リージョンは4連結

特徴量について:
ブローブ解析で既に計算済みで保存されている特徴量については、 取得されるリージョンオブジェクトにも計算結果がコピーされます。 計算済みの際にコピーされる特徴量は下記の通りです。
  • CFvBlobData::GetXYrange
  • CFvBlobData::GetArea
  • CFvBlobData::GetMoment1
  • CFvBlobData::GetMoment2
  • CFvBlobData::GetCenter
  • CFvBlobData::GetRect1Area
  • CFvBlobData::GetRect1Lratio
  • CFvBlobData::GetRect1Sratio
  • CFvBlobData::GetRect2Size
  • CFvBlobData::GetRect2Area
  • CFvBlobData::GetRect2Lratio
  • CFvBlobData::GetRect2Sratio
  • CFvBlobData::GetEquivalentEllipse
  • CFvBlobData::GetDistanceToBoundary
  • CFvBlobData::GetPerimeter

FIE:
fnFIE_measure_get_region
バージョン
FVCLbasic v2.0.0.0: 新規追加
FVCL::Blob::CFvBlobData::GetRegion ( FVCL::Data::CFvRegion region) const

リージョンの取得

現在のブローブをリージョンオブジェクトとして取得します。
詳しくは、 GetRegion() の説明をご参照ください。

引数
[out]regionリージョンオブジェクトを格納するインスタンス
戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
51 FVCL_ErrorCode::LICENSE_ERROR ライセンスがありません。
1 FVCL_ErrorCode::FAILED_TO_ALLOCATE メモリが不足しています。
11 FVCL_ErrorCode::INVALID_PARAMETER ブローブ番号が無効です。
12 FVCL_ErrorCode::INVALID_OBJECT 2値ブローブ解析結果ハンドルが無効です。
参照
GetRegion()
FVCL::Blob::CFvBlobData::GetColor ( ) const

色の取得

ブローブの色を取得します。

戻り値
0
1
例外
FVCL::CFveException処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode からエラーコードを取得できます。
エラーコード:
定数 内容
51 FVCL_ErrorCode::LICENSE_ERROR ライセンスがありません。
11 FVCL_ErrorCode::INVALID_PARAMETER ブローブ番号が無効です。
12 FVCL_ErrorCode::INVALID_OBJECT 2値ブローブ解析結果ハンドルが無効です。
FIE:
fnFIE_measure_get_color
FVCL::Blob::CFvBlobData::GetColor ( UINT color) const

色の取得

ブローブの色を取得します。

引数
[out]colorブローブ色
  • 0: 黒
  • 1: 白

戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
51 FVCL_ErrorCode::LICENSE_ERROR ライセンスがありません。
11 FVCL_ErrorCode::INVALID_PARAMETER ブローブ番号が無効です。
12 FVCL_ErrorCode::INVALID_OBJECT 2値ブローブ解析結果ハンドルが無効です。
FIE:
fnFIE_measure_get_color
FVCL::Blob::CFvBlobData::GetArea ( ) const

面積の取得

ブローブの面積を取得します。

戻り値
面積を返します。
例外
FVCL::CFveException処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode からエラーコードを取得できます。
エラーコード:
定数 内容
51 FVCL_ErrorCode::LICENSE_ERROR ライセンスがありません。
11 FVCL_ErrorCode::INVALID_PARAMETER ブローブ番号が無効です。
12 FVCL_ErrorCode::INVALID_OBJECT 2値ブローブ解析結果ハンドルが無効です。
FIE:
fnFIE_measure_get_area
FVCL::Blob::CFvBlobData::GetArea ( UINT area) const

面積の取得

ブローブの面積を取得します。

引数
[out]area面積
戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
51 FVCL_ErrorCode::LICENSE_ERROR ライセンスがありません。
11 FVCL_ErrorCode::INVALID_PARAMETER ブローブ番号が無効です。
12 FVCL_ErrorCode::INVALID_OBJECT 2値ブローブ解析結果ハンドルが無効です。
FIE:
fnFIE_measure_get_area
FVCL::Blob::CFvBlobData::GetAreaWithHole ( ) const

面積(穴面積含む)の取得

ブローブの穴を含んだ面積を取得します。
単色解析モードの時は親子関係を構築しない為、穴面積を計算できません。 その為、本関数は常に例外を発行します。

戻り値
面積を返します。
例外
FVCL::CFveException処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode からエラーコードを取得できます。
エラーコード:
定数 内容
51 FVCL_ErrorCode::LICENSE_ERROR ライセンスがありません。
11 FVCL_ErrorCode::INVALID_PARAMETER ブローブ番号が無効です。
12 FVCL_ErrorCode::INVALID_OBJECT 2値ブローブ解析結果ハンドルが無効です。
29 FVCL_ErrorCode::NOT_CALCULABLE 計算できません。
FIE:
fnFIE_measure_get_area_with_hole
FVCL::Blob::CFvBlobData::GetAreaWithHole ( UINT area) const

面積(穴面積含む)の取得

ブローブの穴を含んだ面積を取得します。
単色解析モードの時は親子関係を構築しない為、穴面積を計算できません。 その為、本関数は常に FVCL_ErrorCode::NOT_CALCULABLE を返します。

引数
[out]area面積
戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
51 FVCL_ErrorCode::LICENSE_ERROR ライセンスがありません。
11 FVCL_ErrorCode::INVALID_PARAMETER ブローブ番号が無効です。
12 FVCL_ErrorCode::INVALID_OBJECT 2値ブローブ解析結果ハンドルが無効です。
29 FVCL_ErrorCode::NOT_CALCULABLE 計算できません。
FIE:
fnFIE_measure_get_area_with_hole
FVCL::Blob::CFvBlobData::GetHoleNum ( ) const

穴数の取得

ブローブの穴数を取得します。

戻り値
穴数を返します。
例外
FVCL::CFveException処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode からエラーコードを取得できます。
エラーコード:
定数 内容
51 FVCL_ErrorCode::LICENSE_ERROR ライセンスがありません。
11 FVCL_ErrorCode::INVALID_PARAMETER ブローブ番号が無効です。
12 FVCL_ErrorCode::INVALID_OBJECT 2値ブローブ解析結果ハンドルが無効です。
29 FVCL_ErrorCode::NOT_CALCULABLE 計算できません。
FIE:
fnFIE_measure_get_hole_num
FVCL::Blob::CFvBlobData::GetHoleNum ( UINT holes) const

穴数の取得

ブローブの穴数を取得します。

引数
[out]holes穴数
戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
51 FVCL_ErrorCode::LICENSE_ERROR ライセンスがありません。
11 FVCL_ErrorCode::INVALID_PARAMETER ブローブ番号が無効です。
12 FVCL_ErrorCode::INVALID_OBJECT 2値ブローブ解析結果ハンドルが無効です。
29 FVCL_ErrorCode::NOT_CALCULABLE 計算できません。
FIE:
fnFIE_measure_get_hole_num
FVCL::Blob::CFvBlobData::GetHoleArea ( ) const

穴面積の取得

ブローブの穴面積を取得します。
単色解析モードの時は親子関係を構築しない為、穴面積を計算できません。 その為、本関数は常に例外を発行します。

戻り値
穴面積を返します。
例外
FVCL::CFveException処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode からエラーコードを取得できます。
エラーコード:
定数 内容
51 FVCL_ErrorCode::LICENSE_ERROR ライセンスがありません。
11 FVCL_ErrorCode::INVALID_PARAMETER ブローブ番号が無効です。
12 FVCL_ErrorCode::INVALID_OBJECT 2値ブローブ解析結果ハンドルが無効です。
29 FVCL_ErrorCode::NOT_CALCULABLE 計算できません。
FIE:
fnFIE_measure_get_hole_area
注意:
2値ブローブ解析では、穴はブローブの子供とその子孫を全て含んだ領域と定義しています。 そのため、子供ブローブ面積の総和と穴面積は異なることが有ることに注意してください。
blob_holes.png
Fig. 穴面積と子供面積が異なる例
FVCL::Blob::CFvBlobData::GetHoleArea ( UINT area) const

穴面積の取得

ブローブの穴面積を取得します。
単色解析モードの時は親子関係を構築しない為、穴面積を計算できません。 その為、本関数は常に FVCL_ErrorCode::NOT_CALCULABLE を返します。

引数
[out]area穴面積
戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
51 FVCL_ErrorCode::LICENSE_ERROR ライセンスがありません。
11 FVCL_ErrorCode::INVALID_PARAMETER ブローブ番号が無効です。
12 FVCL_ErrorCode::INVALID_OBJECT 2値ブローブ解析結果ハンドルが無効です。
29 FVCL_ErrorCode::NOT_CALCULABLE 計算できません。
FIE:
fnFIE_measure_get_hole_area
注意:
2値ブローブ解析では、穴はブローブの子供とその子孫を全て含んだ領域と定義しています。 そのため、子供ブローブ面積の総和と穴面積は異なることが有ることに注意してください。
blob_holes.png
Fig. 穴面積と子供面積が異なる例
FVCL::Blob::CFvBlobData::GetHoleRatio ( ) const

穴面積比の取得

ブローブの穴面積比を取得します。
特徴量は下式にて定義されます。

\[ hratio = \frac{sc}{st} \]

戻り値
穴面積比を返します。
例外
FVCL::CFveException処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode からエラーコードを取得できます。
エラーコード:
定数 内容
51 FVCL_ErrorCode::LICENSE_ERROR ライセンスがありません。
11 FVCL_ErrorCode::INVALID_PARAMETER ブローブ番号が無効です。
12 FVCL_ErrorCode::INVALID_OBJECT 2値ブローブ解析結果ハンドルが無効です。
29 FVCL_ErrorCode::NOT_CALCULABLE 計算できません。
FIE:
fnFIE_measure_get_hole_ratio
FVCL::Blob::CFvBlobData::GetHoleRatio ( DOUBLE ratio) const

穴面積比の取得

ブローブの穴面積比を取得します。
特徴量は下式にて定義されます。

\[ hratio = \frac{sc}{st} \]

引数
[out]ratio穴面積比
戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
51 FVCL_ErrorCode::LICENSE_ERROR ライセンスがありません。
11 FVCL_ErrorCode::INVALID_PARAMETER ブローブ番号が無効です。
12 FVCL_ErrorCode::INVALID_OBJECT 2値ブローブ解析結果ハンドルが無効です。
29 FVCL_ErrorCode::NOT_CALCULABLE 計算できません。
FIE:
fnFIE_measure_get_hole_ratio
FVCL::Blob::CFvBlobData::GetDistanceToChildsMax ( ) const

子供ブローブ間距離の取得 (最大値)

blob_distance_to_childs.png

ブローブの子供ブローブ間距離の最大値を取得します。
単色解析モードの時は親子関係を構築しない為、子供が存在せず、子供間距離を計算できません。 その為、本関数は常に例外を発行します。

戻り値
子供ブローブ間距離最大値を返します。
例外
FVCL::CFveException処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode からエラーコードを取得できます。
エラーコード:
定数 内容
51 FVCL_ErrorCode::LICENSE_ERROR ライセンスがありません。
11 FVCL_ErrorCode::INVALID_PARAMETER ブローブ番号が無効です。
12 FVCL_ErrorCode::INVALID_OBJECT 2値ブローブ解析結果ハンドルが無効です。
29 FVCL_ErrorCode::NOT_CALCULABLE 計算できません。
FIE:
fnFIE_measure_get_distance_to_childs
FVCL::Blob::CFvBlobData::GetDistanceToChildsMin ( ) const

子供ブローブ間距離の取得 (最小値)

blob_distance_to_childs.png

ブローブの子供ブローブ間距離の最小値を取得します。
単色解析モードの時は親子関係を構築しない為、子供が存在せず、子供間距離を計算できません。 その為、本関数は常に例外を発行します。

戻り値
子供ブローブ間距離最小値を返します。
例外
FVCL::CFveException処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode からエラーコードを取得できます。
エラーコード:
定数 内容
51 FVCL_ErrorCode::LICENSE_ERROR ライセンスがありません。
11 FVCL_ErrorCode::INVALID_PARAMETER ブローブ番号が無効です。
12 FVCL_ErrorCode::INVALID_OBJECT 2値ブローブ解析結果ハンドルが無効です。
29 FVCL_ErrorCode::NOT_CALCULABLE 計算できません。
FIE:
fnFIE_measure_get_distance_to_childs
FVCL::Blob::CFvBlobData::GetDistanceToChildsAve ( ) const

子供ブローブ間距離の取得 (平均値)

blob_distance_to_childs.png

ブローブの子供ブローブ間距離の平均値を取得します。
単色解析モードの時は親子関係を構築しない為、子供が存在せず、子供間距離を計算できません。 その為、本関数は常に例外を発行します。

戻り値
子供ブローブ間距離平均値を返します。
例外
FVCL::CFveException処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode からエラーコードを取得できます。
エラーコード:
定数 内容
51 FVCL_ErrorCode::LICENSE_ERROR ライセンスがありません。
11 FVCL_ErrorCode::INVALID_PARAMETER ブローブ番号が無効です。
12 FVCL_ErrorCode::INVALID_OBJECT 2値ブローブ解析結果ハンドルが無効です。
29 FVCL_ErrorCode::NOT_CALCULABLE 計算できません。
FIE:
fnFIE_measure_get_distance_to_childs
FVCL::Blob::CFvBlobData::GetDistanceToChilds ( DOUBLE max,
DOUBLE min,
DOUBLE ave 
) const

子供ブローブ間距離の取得

blob_distance_to_childs.png

ブローブの子供ブローブ間距離を取得します。
単色解析モードの時は親子関係を構築しない為、子供が存在せず、子供間距離を計算できません。 その為、本関数は常に FVCL_ErrorCode::NOT_CALCULABLE を返します。

引数
[out]max子供ブローブ間距離最大値
[out]min子供ブローブ間距離最小値
[out]ave子供ブローブ間距離平均値
戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
51 FVCL_ErrorCode::LICENSE_ERROR ライセンスがありません。
11 FVCL_ErrorCode::INVALID_PARAMETER ブローブ番号が無効です。
12 FVCL_ErrorCode::INVALID_OBJECT 2値ブローブ解析結果ハンドルが無効です。
29 FVCL_ErrorCode::NOT_CALCULABLE 計算できません。
FIE:
fnFIE_measure_get_distance_to_childs
FVCL::Blob::CFvBlobData::GetDistanceToSiblingsMax ( ) const

隣接エリア(兄弟ブローブ)間距離の取得 (最大値)

blob_distance_to_siblings.png

ブローブの兄弟ブローブ間距離の最大値を取得します。
単色解析モードの時は親子関係を構築しない為、子供が存在せず、子供間距離を計算できません。 その為、本関数は常に例外を発行します。

戻り値
隣接エリア間距離最大値を返します。
例外
FVCL::CFveException処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode からエラーコードを取得できます。
エラーコード:
定数 内容
51 FVCL_ErrorCode::LICENSE_ERROR ライセンスがありません。
11 FVCL_ErrorCode::INVALID_PARAMETER ブローブ番号が無効です。
12 FVCL_ErrorCode::INVALID_OBJECT 2値ブローブ解析結果ハンドルが無効です。
29 FVCL_ErrorCode::NOT_CALCULABLE 計算できません。
FIE:
fnFIE_measure_get_distance_to_siblings
FVCL::Blob::CFvBlobData::GetDistanceToSiblingsMin ( ) const

隣接エリア(兄弟ブローブ)間距離の取得 (最小値)

blob_distance_to_siblings.png

ブローブの兄弟ブローブ間距離の最小値を取得します。
単色解析モードの時は親子関係を構築しない為、子供が存在せず、子供間距離を計算できません。 その為、本関数は常に例外を発行します。

戻り値
隣接エリア間距離最小値を返します。
例外
FVCL::CFveException処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode からエラーコードを取得できます。
エラーコード:
定数 内容
51 FVCL_ErrorCode::LICENSE_ERROR ライセンスがありません。
11 FVCL_ErrorCode::INVALID_PARAMETER ブローブ番号が無効です。
12 FVCL_ErrorCode::INVALID_OBJECT 2値ブローブ解析結果ハンドルが無効です。
29 FVCL_ErrorCode::NOT_CALCULABLE 計算できません。
FIE:
fnFIE_measure_get_distance_to_siblings
FVCL::Blob::CFvBlobData::GetDistanceToSiblingsAve ( ) const

隣接エリア(兄弟ブローブ)間距離の取得 (平均値)

blob_distance_to_siblings.png

ブローブの兄弟ブローブ間距離の平均値を取得します。
単色解析モードの時は親子関係を構築しない為、子供が存在せず、子供間距離を計算できません。 その為、本関数は常に例外を発行します。

戻り値
隣接エリア間距離平均値を返します。
例外
FVCL::CFveException処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode からエラーコードを取得できます。
エラーコード:
定数 内容
51 FVCL_ErrorCode::LICENSE_ERROR ライセンスがありません。
11 FVCL_ErrorCode::INVALID_PARAMETER ブローブ番号が無効です。
12 FVCL_ErrorCode::INVALID_OBJECT 2値ブローブ解析結果ハンドルが無効です。
29 FVCL_ErrorCode::NOT_CALCULABLE 計算できません。
FIE:
fnFIE_measure_get_distance_to_siblings
FVCL::Blob::CFvBlobData::GetDistanceToSiblings ( DOUBLE max,
DOUBLE min,
DOUBLE ave 
) const

隣接エリア(兄弟ブローブ)間距離の取得

blob_distance_to_siblings.png

ブローブの兄弟ブローブ間距離を取得します。
単色解析モードの時は親子関係を構築しない為、子供が存在せず、子供間距離を計算できません。 その為、本関数は常に FVCL_ErrorCode::NOT_CALCULABLE を返します。

引数
[out]max隣接エリア間距離最大値
[out]min隣接エリア間距離最小値
[out]ave隣接エリア間距離平均値
戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
51 FVCL_ErrorCode::LICENSE_ERROR ライセンスがありません。
11 FVCL_ErrorCode::INVALID_PARAMETER ブローブ番号が無効です。
12 FVCL_ErrorCode::INVALID_OBJECT 2値ブローブ解析結果ハンドルが無効です。
29 FVCL_ErrorCode::NOT_CALCULABLE 計算できません。
FIE:
fnFIE_measure_get_distance_to_siblings
FVCL::Blob::CFvBlobData::GetXmin ( ) const

X座標最小値の取得

領域のX座標最小値を取得します。

blob_xydiff.png
戻り値
X座標最小値を返します。
例外
FVCL::CFveException処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode からエラーコードを取得できます。
エラーコード:
定数 内容
51 FVCL_ErrorCode::LICENSE_ERROR ライセンスがありません。
11 FVCL_ErrorCode::INVALID_PARAMETER ブローブ番号が無効です。
12 FVCL_ErrorCode::INVALID_OBJECT 2値ブローブ解析結果ハンドルが無効です。
FIE:
fnFIE_measure_get_xyrange
FVCL::Blob::CFvBlobData::GetYmin ( ) const

Y座標最小値の取得

領域のY座標最小値を取得します。

blob_xydiff.png
戻り値
Y座標最小値を返します。
例外
FVCL::CFveException処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode からエラーコードを取得できます。
エラーコード:
定数 内容
51 FVCL_ErrorCode::LICENSE_ERROR ライセンスがありません。
11 FVCL_ErrorCode::INVALID_PARAMETER ブローブ番号が無効です。
12 FVCL_ErrorCode::INVALID_OBJECT 2値ブローブ解析結果ハンドルが無効です。
FIE:
fnFIE_measure_get_xyrange
FVCL::Blob::CFvBlobData::GetXmax ( ) const

X座標最大値の取得

領域のX座標最大値を取得します。

blob_xydiff.png
戻り値
X座標最大値を返します。
例外
FVCL::CFveException処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode からエラーコードを取得できます。
エラーコード:
定数 内容
51 FVCL_ErrorCode::LICENSE_ERROR ライセンスがありません。
11 FVCL_ErrorCode::INVALID_PARAMETER ブローブ番号が無効です。
12 FVCL_ErrorCode::INVALID_OBJECT 2値ブローブ解析結果ハンドルが無効です。
FIE:
fnFIE_measure_get_xyrange
FVCL::Blob::CFvBlobData::GetYmax ( ) const

Y座標最大値の取得

領域のY座標最大値を取得します。

blob_xydiff.png
戻り値
Y座標最大値を返します。
例外
FVCL::CFveException処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode からエラーコードを取得できます。
エラーコード:
定数 内容
51 FVCL_ErrorCode::LICENSE_ERROR ライセンスがありません。
11 FVCL_ErrorCode::INVALID_PARAMETER ブローブ番号が無効です。
12 FVCL_ErrorCode::INVALID_OBJECT 2値ブローブ解析結果ハンドルが無効です。
FIE:
fnFIE_measure_get_xyrange
FVCL::Blob::CFvBlobData::GetXYrange ( INT xmin,
INT ymin,
INT xmax,
INT ymax 
) const

XY座標の最大値と最小値の取得

領域のXY座標の最大値と最小値を取得します。

blob_xydiff.png
引数
[out]xminX座標最小値
[out]yminY座標最小値
[out]xmaxX座標最大値
[out]ymaxY座標最大値
戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
51 FVCL_ErrorCode::LICENSE_ERROR ライセンスがありません。
11 FVCL_ErrorCode::INVALID_PARAMETER ブローブ番号が無効です。
12 FVCL_ErrorCode::INVALID_OBJECT 2値ブローブ解析結果ハンドルが無効です。
FIE:
fnFIE_measure_get_xyrange
FVCL::Blob::CFvBlobData::GetXdiff ( ) const

外接矩形の横サイズの取得

対象ブローブの外接矩形の横サイズ(xdiff)を取得します。

blob_xydiff.png
戻り値
外接矩形の横サイズを返します。
例外
FVCL::CFveException処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode からエラーコードを取得できます。
エラーコード:
定数 内容
51 FVCL_ErrorCode::LICENSE_ERROR ライセンスがありません。
11 FVCL_ErrorCode::INVALID_PARAMETER ブローブ番号が無効です。
12 FVCL_ErrorCode::INVALID_OBJECT 2値ブローブ解析結果ハンドルが無効です。
FIE:
fnFIE_measure_get_xydiff
バージョン
FVCLbasic v2.0.0.0: 新規追加
FVCL::Blob::CFvBlobData::GetYdiff ( ) const

外接矩形の縦サイズの取得

対象ブローブの外接矩形の縦サイズ(ydiff)を取得します。

blob_xydiff.png
戻り値
外接矩形の縦サイズを返します。
例外
FVCL::CFveException処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode からエラーコードを取得できます。
エラーコード:
定数 内容
51 FVCL_ErrorCode::LICENSE_ERROR ライセンスがありません。
11 FVCL_ErrorCode::INVALID_PARAMETER ブローブ番号が無効です。
12 FVCL_ErrorCode::INVALID_OBJECT 2値ブローブ解析結果ハンドルが無効です。
FIE:
fnFIE_measure_get_xydiff
バージョン
FVCLbasic v2.0.0.0: 新規追加
FVCL::Blob::CFvBlobData::GetXYdiff ( INT xdiff,
INT ydiff 
) const

外接矩形サイズの取得

対象ブローブの外接矩形の横サイズ(xdiff)と縦サイズ(ydiff)を取得します。

blob_xydiff.png
引数
[out]xdiff外接矩形横サイズ
[out]ydiff外接矩形縦サイズ
戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
51 FVCL_ErrorCode::LICENSE_ERROR ライセンスがありません。
11 FVCL_ErrorCode::INVALID_PARAMETER ブローブ番号が無効です。
12 FVCL_ErrorCode::INVALID_OBJECT 2値ブローブ解析結果ハンドルが無効です。
FIE:
fnFIE_measure_get_xydiff
バージョン
FVCLbasic v2.0.0.0: 新規追加
FVCL::Blob::CFvBlobData::GetXminAtYmin ( ) const

Yの最小位置におけるXの最小値の取得

ブローブのYの最小位置におけるXの最小値を取得します。

blob_maxminpos.png
戻り値
Yの最小位置におけるXの最小値を返します。
例外
FVCL::CFveException処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode からエラーコードを取得できます。
エラーコード:
定数 内容
51 FVCL_ErrorCode::LICENSE_ERROR ライセンスがありません。
11 FVCL_ErrorCode::INVALID_PARAMETER ブローブ番号が無効です。
12 FVCL_ErrorCode::INVALID_OBJECT 2値ブローブ解析結果ハンドルが無効です。
FIE:
fnFIE_measure_get_maxminpos
FVCL::Blob::CFvBlobData::GetXmaxAtYmax ( ) const

Yの最大位置におけるXの最大値の取得

ブローブのYの最大位置におけるXの最大値を取得します。

blob_maxminpos.png
戻り値
Yの最大位置におけるXの最大値を返します。
例外
FVCL::CFveException処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode からエラーコードを取得できます。
エラーコード:
定数 内容
51 FVCL_ErrorCode::LICENSE_ERROR ライセンスがありません。
11 FVCL_ErrorCode::INVALID_PARAMETER ブローブ番号が無効です。
12 FVCL_ErrorCode::INVALID_OBJECT 2値ブローブ解析結果ハンドルが無効です。
FIE:
fnFIE_measure_get_maxminpos
FVCL::Blob::CFvBlobData::GetYminAtXmax ( ) const

Xの最大位置におけるYの最小値の取得

ブローブのXの最大位置におけるYの最小値を取得します。

blob_maxminpos.png
戻り値
Xの最大位置におけるYの最小値を返します。
例外
FVCL::CFveException処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode からエラーコードを取得できます。
エラーコード:
定数 内容
51 FVCL_ErrorCode::LICENSE_ERROR ライセンスがありません。
11 FVCL_ErrorCode::INVALID_PARAMETER ブローブ番号が無効です。
12 FVCL_ErrorCode::INVALID_OBJECT 2値ブローブ解析結果ハンドルが無効です。
FIE:
fnFIE_measure_get_maxminpos
FVCL::Blob::CFvBlobData::GetYmaxAtXmin ( ) const

Xの最小位置におけるYの最大値の取得

ブローブのXの最小位置におけるYの最大値を取得します。

blob_maxminpos.png
戻り値
Xの最小位置におけるYの最大値を返します。
例外
FVCL::CFveException処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode からエラーコードを取得できます。
エラーコード:
定数 内容
51 FVCL_ErrorCode::LICENSE_ERROR ライセンスがありません。
11 FVCL_ErrorCode::INVALID_PARAMETER ブローブ番号が無効です。
12 FVCL_ErrorCode::INVALID_OBJECT 2値ブローブ解析結果ハンドルが無効です。
FIE:
fnFIE_measure_get_maxminpos
FVCL::Blob::CFvBlobData::GetMaxMinPos ( INT xmin_at_ymin,
INT xmax_at_ymax,
INT ymin_at_xmax,
INT ymax_at_xmin 
) const

座標の最大最小位置の取得

ブローブのXY座標の最大最小位置を取得します。

blob_maxminpos.png
引数
[out]xmin_at_yminYの最小位置におけるXの最小値
[out]xmax_at_ymaxYの最大位置におけるXの最大値
[out]ymin_at_xmaxXの最大位置におけるYの最小値
[out]ymax_at_xminXの最小位置におけるYの最大値
戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
51 FVCL_ErrorCode::LICENSE_ERROR ライセンスがありません。
11 FVCL_ErrorCode::INVALID_PARAMETER ブローブ番号が無効です。
12 FVCL_ErrorCode::INVALID_OBJECT 2値ブローブ解析結果ハンドルが無効です。
FIE:
fnFIE_measure_get_maxminpos
FVCL::Blob::CFvBlobData::GetMoment1SumX ( ) const

1次モーメントの取得 (X方向)

ブローブのX方向1次モーメントを取得します。
詳しくは GetMoment1 の説明をご参照ください。

戻り値
X方向1次モーメントを返します。
例外
FVCL::CFveException処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode からエラーコードを取得できます。
エラーコード:
定数 内容
51 FVCL_ErrorCode::LICENSE_ERROR ライセンスがありません。
11 FVCL_ErrorCode::INVALID_PARAMETER ブローブ番号が無効です。
12 FVCL_ErrorCode::INVALID_OBJECT 2値ブローブ解析結果ハンドルが無効です。
FIE:
fnFIE_measure_get_moment1
参照
GetMoment1
FVCL::Blob::CFvBlobData::GetMoment1SumY ( ) const

1次モーメントの取得 (Y方向)

ブローブのY方向1次モーメントを取得します。
詳しくは GetMoment1 の説明をご参照ください。

戻り値
Y方向1次モーメントを返します。
例外
FVCL::CFveException処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode からエラーコードを取得できます。
エラーコード:
定数 内容
51 FVCL_ErrorCode::LICENSE_ERROR ライセンスがありません。
11 FVCL_ErrorCode::INVALID_PARAMETER ブローブ番号が無効です。
12 FVCL_ErrorCode::INVALID_OBJECT 2値ブローブ解析結果ハンドルが無効です。
FIE:
fnFIE_measure_get_moment1
参照
GetMoment1
FVCL::Blob::CFvBlobData::GetMoment1 ( INT64 sumx,
INT64 sumy 
) const

1次モーメントの取得

ブローブの1次モーメントを取得します。
特徴量は下式にて定義されます。

\[sumx = \sum_{y}\sum_{x}{x} \]

\[sumy = \sum_{y}\sum_{x}{y} \]

  • x : 領域内の各画素のx座標
  • y : 領域内の各画素のy座標
引数
[out]sumxX方向1次モーメント
[out]sumyY方向1次モーメント
戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
51 FVCL_ErrorCode::LICENSE_ERROR ライセンスがありません。
11 FVCL_ErrorCode::INVALID_PARAMETER ブローブ番号が無効です。
12 FVCL_ErrorCode::INVALID_OBJECT 2値ブローブ解析結果ハンドルが無効です。
解説:
本関数の引数 sumx, sumy は、M の別名称です。
それぞれ以下のように対応しています。

\[M_{10} = sumx \]

\[M_{01} = sumy \]

モーメントを表す特徴量については、 GetMoment の説明をご参照ください。
FIE:
fnFIE_measure_get_moment1
FVCL::Blob::CFvBlobData::GetMoment2SumX ( ) const

2次モーメントの取得 (X方向)

ブローブのX方向2次モーメントを取得します。
詳しくは GetMoment2 の説明をご参照ください。

戻り値
X方向2次モーメントを返します。
例外
FVCL::CFveException処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode からエラーコードを取得できます。
エラーコード:
定数 内容
51 FVCL_ErrorCode::LICENSE_ERROR ライセンスがありません。
11 FVCL_ErrorCode::INVALID_PARAMETER ブローブ番号が無効です。
12 FVCL_ErrorCode::INVALID_OBJECT 2値ブローブ解析結果ハンドルが無効です。
FIE:
fnFIE_measure_get_moment2
参照
GetMoment2
FVCL::Blob::CFvBlobData::GetMoment2SumY ( ) const

2次モーメントの取得 (Y方向)

ブローブのY方向2次モーメントを取得します。
詳しくは GetMoment2 の説明をご参照ください。

戻り値
Y方向2次モーメントを返します。
例外
FVCL::CFveException処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode からエラーコードを取得できます。
エラーコード:
定数 内容
51 FVCL_ErrorCode::LICENSE_ERROR ライセンスがありません。
11 FVCL_ErrorCode::INVALID_PARAMETER ブローブ番号が無効です。
12 FVCL_ErrorCode::INVALID_OBJECT 2値ブローブ解析結果ハンドルが無効です。
FIE:
fnFIE_measure_get_moment2
参照
GetMoment2
FVCL::Blob::CFvBlobData::GetMoment2SumXY ( ) const

2次モーメントの取得 (XY方向)

ブローブのXY方向2次モーメントを取得します。
詳しくは GetMoment2 の説明をご参照ください。

戻り値
XY方向2次モーメントを返します。
例外
FVCL::CFveException処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode からエラーコードを取得できます。
エラーコード:
定数 内容
51 FVCL_ErrorCode::LICENSE_ERROR ライセンスがありません。
11 FVCL_ErrorCode::INVALID_PARAMETER ブローブ番号が無効です。
12 FVCL_ErrorCode::INVALID_OBJECT 2値ブローブ解析結果ハンドルが無効です。
FIE:
fnFIE_measure_get_moment2
参照
GetMoment2
FVCL::Blob::CFvBlobData::GetMoment2 ( UINT64 sumx,
UINT64 sumy,
INT64 sumxy 
) const

2次モーメントの取得

ブローブの2次モーメントを取得します。
特徴量は下式にて定義されます。

\[sumx = \sum_{y}\sum_{x}{x^2} \]

\[sumy = \sum_{y}\sum_{x}{y^2} \]

\[sumxy = \sum_{y}\sum_{x}{xy} \]

  • x : 領域内の各画素のx座標
  • y : 領域内の各画素のy座標
引数
[out]sumxX方向2次モーメント
[out]sumyY方向2次モーメント
[out]sumxyXY方向2次モーメント
戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
51 FVCL_ErrorCode::LICENSE_ERROR ライセンスがありません。
11 FVCL_ErrorCode::INVALID_PARAMETER ブローブ番号が無効です。
12 FVCL_ErrorCode::INVALID_OBJECT 2値ブローブ解析結果ハンドルが無効です。
解説:
本関数の引数 sumx, sumy, sumxy は、M の別名称です。
それぞれ以下のように対応しています。

\[M_{20} = sumx \]

\[M_{02} = sumy \]

\[M_{11} = sumxy \]

モーメントを表す特徴量については、 GetMoment の説明をご参照ください。
FIE:
fnFIE_measure_get_moment2
FVCL::Blob::CFvBlobData::GetCentralMoment2MG20 ( ) const

重心2次モーメントの取得 (X方向)

ブローブの重心2次モーメント(X方向)を取得します。
詳しくは GetCentralMoment の説明をご参照ください。

戻り値
重心2次モーメント(X方向)を返します。
例外
FVCL::CFveException処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode からエラーコードを取得できます。
エラーコード:
定数 内容
51 FVCL_ErrorCode::LICENSE_ERROR ライセンスがありません。
11 FVCL_ErrorCode::INVALID_PARAMETER ブローブ番号が無効です。
12 FVCL_ErrorCode::INVALID_OBJECT 2値ブローブ解析結果ハンドルが無効です。
FIE:
fnFIE_measure_get_central_moment2
バージョン
FVCLbasic v2.0.0.0: 新規追加
参照
GetCentralMoment2
FVCL::Blob::CFvBlobData::GetCentralMoment2MG02 ( ) const

重心2次モーメントの取得 (Y方向)

ブローブの重心2次モーメント(Y方向)を取得します。
詳しくは GetCentralMoment の説明をご参照ください。

戻り値
重心2次モーメント(Y方向)を返します。
例外
FVCL::CFveException処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode からエラーコードを取得できます。
エラーコード:
定数 内容
51 FVCL_ErrorCode::LICENSE_ERROR ライセンスがありません。
11 FVCL_ErrorCode::INVALID_PARAMETER ブローブ番号が無効です。
12 FVCL_ErrorCode::INVALID_OBJECT 2値ブローブ解析結果ハンドルが無効です。
FIE:
fnFIE_measure_get_central_moment2
バージョン
FVCLbasic v2.0.0.0: 新規追加
参照
GetCentralMoment2
FVCL::Blob::CFvBlobData::GetCentralMoment2MG11 ( ) const

重心2次モーメントの取得 (XY方向)

ブローブの重心2次モーメント(XY方向)を取得します。
詳しくは GetCentralMoment の説明をご参照ください。

戻り値
重心2次モーメント(XY方向)を返します。
例外
FVCL::CFveException処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode からエラーコードを取得できます。
エラーコード:
定数 内容
51 FVCL_ErrorCode::LICENSE_ERROR ライセンスがありません。
11 FVCL_ErrorCode::INVALID_PARAMETER ブローブ番号が無効です。
12 FVCL_ErrorCode::INVALID_OBJECT 2値ブローブ解析結果ハンドルが無効です。
FIE:
fnFIE_measure_get_central_moment2
バージョン
FVCLbasic v2.0.0.0: 新規追加
参照
GetCentralMoment2
FVCL::Blob::CFvBlobData::GetCentralMoment2 ( DOUBLE mg20,
DOUBLE mg02,
DOUBLE mg11 
) const

重心2次モーメントの取得

ブローブの重心2次モーメントを取得します。
詳しくは GetCentralMoment の説明をご参照ください。

引数
[out]mg20M20
[out]mg02M02
[out]mg11M11
戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
51 FVCL_ErrorCode::LICENSE_ERROR ライセンスがありません。
11 FVCL_ErrorCode::INVALID_PARAMETER ブローブ番号が無効です。
12 FVCL_ErrorCode::INVALID_OBJECT 2値ブローブ解析結果ハンドルが無効です。
FIE:
fnFIE_measure_get_central_moment2
バージョン
FVCLbasic v2.0.0.0: 新規追加
FVCL::Blob::CFvBlobData::GetMoment3M30 ( ) const

3次モーメントの取得 (M30)

ブローブの3次モーメント(M30)を取得します。
詳しくは GetMoment の説明をご参照ください。

戻り値
3次モーメント(M30)を返します。
例外
FVCL::CFveException処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode からエラーコードを取得できます。
エラーコード:
定数 内容
51 FVCL_ErrorCode::LICENSE_ERROR ライセンスがありません。
11 FVCL_ErrorCode::INVALID_PARAMETER ブローブ番号が無効です。
12 FVCL_ErrorCode::INVALID_OBJECT 2値ブローブ解析結果ハンドルが無効です。
FIE:
fnFIE_measure_get_moment3
バージョン
FVCLbasic v2.0.0.0: 新規追加
参照
GetMoment3
FVCL::Blob::CFvBlobData::GetMoment3M03 ( ) const

3次モーメントの取得 (M03)

ブローブの3次モーメント(M03)を取得します。
詳しくは GetMoment の説明をご参照ください。

戻り値
3次モーメント(M03)を返します。
例外
FVCL::CFveException処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode からエラーコードを取得できます。
エラーコード:
定数 内容
51 FVCL_ErrorCode::LICENSE_ERROR ライセンスがありません。
11 FVCL_ErrorCode::INVALID_PARAMETER ブローブ番号が無効です。
12 FVCL_ErrorCode::INVALID_OBJECT 2値ブローブ解析結果ハンドルが無効です。
FIE:
fnFIE_measure_get_moment3
バージョン
FVCLbasic v2.0.0.0: 新規追加
参照
GetMoment3
FVCL::Blob::CFvBlobData::GetMoment3M21 ( ) const

3次モーメントの取得 (M21)

ブローブの3次モーメント(M21)を取得します。
詳しくは GetMoment の説明をご参照ください。

戻り値
3次モーメント(M21)を返します。
例外
FVCL::CFveException処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode からエラーコードを取得できます。
エラーコード:
定数 内容
51 FVCL_ErrorCode::LICENSE_ERROR ライセンスがありません。
11 FVCL_ErrorCode::INVALID_PARAMETER ブローブ番号が無効です。
12 FVCL_ErrorCode::INVALID_OBJECT 2値ブローブ解析結果ハンドルが無効です。
FIE:
fnFIE_measure_get_moment3
バージョン
FVCLbasic v2.0.0.0: 新規追加
参照
GetMoment3
FVCL::Blob::CFvBlobData::GetMoment3M12 ( ) const

3次モーメントの取得 (M12)

ブローブの3次モーメント(M12)を取得します。
詳しくは GetMoment の説明をご参照ください。

戻り値
3次モーメント(M12)を返します。
例外
FVCL::CFveException処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode からエラーコードを取得できます。
エラーコード:
定数 内容
51 FVCL_ErrorCode::LICENSE_ERROR ライセンスがありません。
11 FVCL_ErrorCode::INVALID_PARAMETER ブローブ番号が無効です。
12 FVCL_ErrorCode::INVALID_OBJECT 2値ブローブ解析結果ハンドルが無効です。
FIE:
fnFIE_measure_get_moment3
バージョン
FVCLbasic v2.0.0.0: 新規追加
参照
GetMoment3
FVCL::Blob::CFvBlobData::GetMoment3 ( DOUBLE m30,
DOUBLE m03,
DOUBLE m21,
DOUBLE m12 
) const

3次モーメントの取得

ブローブの3次モーメントを取得します。
詳しくは GetMoment の説明をご参照ください。

引数
[out]m30M30
[out]m03M03
[out]m21M21
[out]m12M12
戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
51 FVCL_ErrorCode::LICENSE_ERROR ライセンスがありません。
11 FVCL_ErrorCode::INVALID_PARAMETER ブローブ番号が無効です。
12 FVCL_ErrorCode::INVALID_OBJECT 2値ブローブ解析結果ハンドルが無効です。
FIE:
fnFIE_measure_get_moment3
バージョン
FVCLbasic v2.0.0.0: 新規追加
FVCL::Blob::CFvBlobData::GetCentralMoment3MG30 ( ) const

重心3次モーメントの取得 (MG30)

ブローブの重心3次モーメント(MG30)を取得します。
詳しくは GetCentralMoment の説明をご参照ください。

戻り値
重心3次モーメント(MG30)を返します。
例外
FVCL::CFveException処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode からエラーコードを取得できます。
エラーコード:
定数 内容
51 FVCL_ErrorCode::LICENSE_ERROR ライセンスがありません。
11 FVCL_ErrorCode::INVALID_PARAMETER ブローブ番号が無効です。
12 FVCL_ErrorCode::INVALID_OBJECT 2値ブローブ解析結果ハンドルが無効です。
FIE:
fnFIE_measure_get_central_moment3
バージョン
FVCLbasic v2.0.0.0: 新規追加
参照
GetCentralMoment3
FVCL::Blob::CFvBlobData::GetCentralMoment3MG03 ( ) const

重心3次モーメントの取得 (MG03)

ブローブの重心3次モーメント(MG03)を取得します。
詳しくは GetCentralMoment の説明をご参照ください。

戻り値
重心3次モーメント(MG03)を返します。
例外
FVCL::CFveException処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode からエラーコードを取得できます。
エラーコード:
定数 内容
51 FVCL_ErrorCode::LICENSE_ERROR ライセンスがありません。
11 FVCL_ErrorCode::INVALID_PARAMETER ブローブ番号が無効です。
12 FVCL_ErrorCode::INVALID_OBJECT 2値ブローブ解析結果ハンドルが無効です。
FIE:
fnFIE_measure_get_central_moment3
バージョン
FVCLbasic v2.0.0.0: 新規追加
参照
GetCentralMoment3
FVCL::Blob::CFvBlobData::GetCentralMoment3MG21 ( ) const

重心3次モーメントの取得 (MG21)

ブローブの重心3次モーメント(MG21)を取得します。
詳しくは GetCentralMoment の説明をご参照ください。

戻り値
重心3次モーメント(MG21)を返します。
例外
FVCL::CFveException処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode からエラーコードを取得できます。
エラーコード:
定数 内容
51 FVCL_ErrorCode::LICENSE_ERROR ライセンスがありません。
11 FVCL_ErrorCode::INVALID_PARAMETER ブローブ番号が無効です。
12 FVCL_ErrorCode::INVALID_OBJECT 2値ブローブ解析結果ハンドルが無効です。
FIE:
fnFIE_measure_get_central_moment3
バージョン
FVCLbasic v2.0.0.0: 新規追加
参照
GetCentralMoment3
FVCL::Blob::CFvBlobData::GetCentralMoment3MG12 ( ) const

重心3次モーメントの取得 (MG12)

ブローブの重心3次モーメント(MG12)を取得します。
詳しくは GetCentralMoment の説明をご参照ください。

戻り値
重心3次モーメント(MG12)を返します。
例外
FVCL::CFveException処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode からエラーコードを取得できます。
エラーコード:
定数 内容
51 FVCL_ErrorCode::LICENSE_ERROR ライセンスがありません。
11 FVCL_ErrorCode::INVALID_PARAMETER ブローブ番号が無効です。
12 FVCL_ErrorCode::INVALID_OBJECT 2値ブローブ解析結果ハンドルが無効です。
FIE:
fnFIE_measure_get_central_moment3
バージョン
FVCLbasic v2.0.0.0: 新規追加
参照
GetCentralMoment3
FVCL::Blob::CFvBlobData::GetCentralMoment3 ( DOUBLE mg30,
DOUBLE mg03,
DOUBLE mg21,
DOUBLE mg12 
) const

重心3次モーメントの取得

ブローブの重心3次モーメントを取得します。
詳しくは GetCentralMoment の説明をご参照ください。

引数
[out]mg30MG30
[out]mg03MG03
[out]mg21MG21
[out]mg12MG12
戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
51 FVCL_ErrorCode::LICENSE_ERROR ライセンスがありません。
11 FVCL_ErrorCode::INVALID_PARAMETER ブローブ番号が無効です。
12 FVCL_ErrorCode::INVALID_OBJECT 2値ブローブ解析結果ハンドルが無効です。
FIE:
fnFIE_measure_get_central_moment3
バージョン
FVCLbasic v2.0.0.0: 新規追加
FVCL::Blob::CFvBlobData::GetMoment ( INT  xn,
INT  yn 
) const

N次モーメントの取得

ブローブのN次モーメントを取得します。
特徴量は下式にて定義されます。

\[M_{pq} = \sum_{(x,y) \in R}{x^p y^q} \]

ここで、
  • R : 領域
  • x : 各画素のx座標
  • y : 各画素のy座標
  • p : Xの次数
  • q : Yの次数
なお、p=q=0 のとき、 $M_{pq}$ は面積と等しく、式で表せば

\[ M_{00} = area \]

となります。
引数
[in]xnXの次数 (0~)
[in]ynYの次数 (0~)
戻り値
指定次数から計算されたモーメントを返します。
例外
FVCL::CFveException処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode からエラーコードを取得できます。
エラーコード:
定数 内容
51 FVCL_ErrorCode::LICENSE_ERROR ライセンスがありません。
11 FVCL_ErrorCode::INVALID_PARAMETER ブローブ番号が無効です。
12 FVCL_ErrorCode::INVALID_OBJECT 2値ブローブ解析結果ハンドルが無効です。
注意:
内部計算は DOUBLE 型変数にて行いますが、型精度の都合で 大きなブローブでは桁落ちによる計算誤差が発生します。 (桁数は指定次数によって変わるため、どの程度のサイズで桁落ちが発生するかは不明です)
FIE:
fnFIE_measure_get_moment
FVCL::Blob::CFvBlobData::GetCentralMoment ( INT  xn,
INT  yn 
) const

重心N次モーメントの取得

ブローブの重心N次モーメントを取得します。
特徴量は下式にて定義されます。

\[MG_{pq} = \sum_{(x,y) \in R}{(x-centerx)^p(y-centery)^q} \]

なお、p+q≦1 のときは次のようになります。

\[ MG_{00} = M_{00} = area \]

\[ MG_{10} = 0 \]

\[ MG_{01} = 0 \]

  • R : 領域
  • x : 各画素のx座標
  • y : 各画素のy座標
  • centerx : 重心のX座標
  • centery : 重心のY座標
  • p : Xの次数(0以上)
  • q : Yの次数(0以上)
  • area : 面積
引数
[in]xnXの次数 (0~)
[in]ynYの次数 (0~)
戻り値
指定次数から計算された重心モーメントを返します。
例外
FVCL::CFveException処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode からエラーコードを取得できます。
エラーコード:
定数 内容
51 FVCL_ErrorCode::LICENSE_ERROR ライセンスがありません。
11 FVCL_ErrorCode::INVALID_PARAMETER ブローブ番号が無効です。
12 FVCL_ErrorCode::INVALID_OBJECT 2値ブローブ解析結果ハンドルが無効です。
注意:
内部計算は DOUBLE 型変数にて行いますが、型精度の都合で 大きなブローブでは桁落ちによる計算誤差が発生します。 (桁数は指定次数によって変わるため、どの程度のサイズで桁落ちが発生するかは不明です)
FIE:
fnFIE_measure_get_central_moment
FVCL::Blob::CFvBlobData::GetCenter ( ) const

重心の取得

ブローブの重心を取得します。
特徴量は下式にて定義されます。

\[center.x = \frac{sumx}{area}\]

\[center.y = \frac{sumy}{area}\]

  • sumx : 領域のx方向1次モーメント
  • sumy : 領域のy方向1次モーメント
  • area : 領域の面積
戻り値
重心位置を返します。
例外
FVCL::CFveException処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode からエラーコードを取得できます。
エラーコード:
定数 内容
51 FVCL_ErrorCode::LICENSE_ERROR ライセンスがありません。
11 FVCL_ErrorCode::INVALID_PARAMETER ブローブ番号が無効です。
12 FVCL_ErrorCode::INVALID_OBJECT 2値ブローブ解析結果ハンドルが無効です。
FIE:
fnFIE_measure_get_center
FVCL::Blob::CFvBlobData::GetCenter ( FVCL::Data::CFvPoint center) const

重心の取得

ブローブの重心を取得します。
特徴量は下式にて定義されます。

\[center.x = \frac{sumx}{area}\]

\[center.y = \frac{sumy}{area}\]

  • sumx : 領域のx方向1次モーメント
  • sumy : 領域のy方向1次モーメント
  • area : 領域の面積
引数
[out]center重心位置
戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
51 FVCL_ErrorCode::LICENSE_ERROR ライセンスがありません。
11 FVCL_ErrorCode::INVALID_PARAMETER ブローブ番号が無効です。
12 FVCL_ErrorCode::INVALID_OBJECT 2値ブローブ解析結果ハンドルが無効です。
FIE:
fnFIE_measure_get_center
FVCL::Blob::CFvBlobData::GetEquivalentEllipse ( ) const

等価楕円の取得

ブローブの面積と等価な楕円を取得します。

戻り値
等価楕円を返します。
例外
FVCL::CFveException処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode からエラーコードを取得できます。
エラーコード:
定数 内容
51 FVCL_ErrorCode::LICENSE_ERROR ライセンスがありません。
11 FVCL_ErrorCode::INVALID_PARAMETER ブローブ番号が無効です。
12 FVCL_ErrorCode::INVALID_OBJECT 2値ブローブ解析結果ハンドルが無効です。
FIE:
fnFIE_measure_get_equivalent_ellipse
解説:
領域の2次モーメントと等価な楕円(慣性等価楕円)を表す特徴量です。 慣性等価楕円の中心は、重心と同じです。
blob_equi_ellipse.png
特徴量は下式にて定義されます。

\begin{eqnarray*} majoraxis &=& \sqrt{2}\sqrt{\mu_{20}+\mu_{02}+\sqrt{(\mu_{20}-\mu_{02})^2+4\mu_{11}^2}}\\ minoraxis &=& \sqrt{2}\sqrt{\mu_{20}+\mu_{02}-\sqrt{(\mu_{20}-\mu_{02})^2+4\mu_{11}^2}}\\ axistheta &=& \frac{1}{2}{\tt atan2}(\mu_{11},\mu_{20}-\mu_{02})\\ \end{eqnarray*}

ここで、 $\mu_{20}, \mu_{02}, \mu_{11}$はブローブの 正規化された重心2次モーメントであり、それぞれ次のように計算されます。

\begin{eqnarray*} \mu_{20} &=& \frac{MG_{20}}{area} = (sumx2 - \frac{sumx^2}{area})/area\\ \mu_{02} &=& \frac{MG_{02}}{area} = (sumy2 - \frac{sumy^2}{area})/area\\ \mu_{11} &=& \frac{MG_{11}}{area} = (sumxy - \frac{sumx * sumy}{area})/area \end{eqnarray*}

上式における $MG_{20}, MG_{02}, MG_{11}$は、重心2次モーメント (ブローブの重心を通る軸に対するモーメント)です。
  • majoraxis : 慣性等価楕円 主軸半径
  • minoraxis : 慣性等価楕円 副軸半径
  • axistheta : 慣性等価楕円 主軸傾き
  • sumx : x方向1次モーメント
  • sumy : y方向1次モーメント
  • sumx2 : x方向2次モーメント
  • sumy2 : y方向2次モーメント
  • sumxy : 相乗2次モーメント

注意:
ブローブの面積が1(1画素のみブローブ)のときは、majoraxis, minoraxis が共に0になります。 ブローブの構成画素が1直線上に並んでいる場合は、minoraxis が0になります。
FVCL::Blob::CFvBlobData::GetEquivalentEllipse ( FVCL::Data::CFvEllipse ellipse) const

等価楕円の取得

ブローブの面積と等価な楕円を取得します。

引数
[out]ellipse楕円
戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
51 FVCL_ErrorCode::LICENSE_ERROR ライセンスがありません。
11 FVCL_ErrorCode::INVALID_PARAMETER ブローブ番号が無効です。
12 FVCL_ErrorCode::INVALID_OBJECT 2値ブローブ解析結果ハンドルが無効です。
FIE:
fnFIE_measure_get_equivalent_ellipse
解説:
領域の2次モーメントと等価な楕円(慣性等価楕円)を表す特徴量です。 慣性等価楕円の中心は、重心と同じです。
blob_equi_ellipse.png
特徴量は下式にて定義されます。

\begin{eqnarray*} majoraxis &=& \sqrt{2}\sqrt{\mu_{20}+\mu_{02}+\sqrt{(\mu_{20}-\mu_{02})^2+4\mu_{11}^2}}\\ minoraxis &=& \sqrt{2}\sqrt{\mu_{20}+\mu_{02}-\sqrt{(\mu_{20}-\mu_{02})^2+4\mu_{11}^2}}\\ axistheta &=& \frac{1}{2}{\tt atan2}(\mu_{11},\mu_{20}-\mu_{02})\\ \end{eqnarray*}

ここで、 $\mu_{20}, \mu_{02}, \mu_{11}$はブローブの 正規化された重心2次モーメントであり、それぞれ次のように計算されます。

\begin{eqnarray*} \mu_{20} &=& \frac{MG_{20}}{area} = (sumx2 - \frac{sumx^2}{area})/area\\ \mu_{02} &=& \frac{MG_{02}}{area} = (sumy2 - \frac{sumy^2}{area})/area\\ \mu_{11} &=& \frac{MG_{11}}{area} = (sumxy - \frac{sumx * sumy}{area})/area \end{eqnarray*}

上式における $MG_{20}, MG_{02}, MG_{11}$は、重心2次モーメント (ブローブの重心を通る軸に対するモーメント)です。
  • majoraxis : 慣性等価楕円 主軸半径
  • minoraxis : 慣性等価楕円 副軸半径
  • axistheta : 慣性等価楕円 主軸傾き
  • sumx : x方向1次モーメント
  • sumy : y方向1次モーメント
  • sumx2 : x方向2次モーメント
  • sumy2 : y方向2次モーメント
  • sumxy : 相乗2次モーメント

注意:
ブローブの面積が1(1画素のみブローブ)のときは、majoraxis, minoraxis が共に0になります。 ブローブの構成画素が1直線上に並んでいる場合は、minoraxis が0になります。
バグ:
FVCLblob v1.3.0.0: 重心2次モーメントの計算式に誤りがあった為、文書を訂正しました。プログラムに変更はありません。
FVCL::Blob::CFvBlobData::GetEquivalentDisk ( ) const

面積等価円の取得

ブローブの面積と等価な円を取得します。

戻り値
面積等価円を返します。
例外
FVCL::CFveException処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode からエラーコードを取得できます。
エラーコード:
定数 内容
51 FVCL_ErrorCode::LICENSE_ERROR ライセンスがありません。
11 FVCL_ErrorCode::INVALID_PARAMETER ブローブ番号が無効です。
12 FVCL_ErrorCode::INVALID_OBJECT 2値ブローブ解析結果ハンドルが無効です。
FIE:
fnFIE_measure_get_equivalent_disk
FVCL::Blob::CFvBlobData::GetEquivalentDisk ( FVCL::Data::CFvCircle disk) const

面積等価円の取得

ブローブの面積と等価な円を取得します。

引数
[out]disk
戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
51 FVCL_ErrorCode::LICENSE_ERROR ライセンスがありません。
11 FVCL_ErrorCode::INVALID_PARAMETER ブローブ番号が無効です。
12 FVCL_ErrorCode::INVALID_OBJECT 2値ブローブ解析結果ハンドルが無効です。
FIE:
fnFIE_measure_get_equivalent_disk
FVCL::Blob::CFvBlobData::GetEquivalentCircle ( ) const

周囲長等価円の取得

ブローブの周囲長と円周が等価な円を取得します。
特徴量は下式にて定義されます。

\[{\it diameter\_equicircle} = \frac{perim}{\pi}\]

  • perim : 周囲長
  • diameter_equicircle : 円周等価円 直径
戻り値
周囲長等価円を返します。
例外
FVCL::CFveException処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode からエラーコードを取得できます。
エラーコード:
定数 内容
51 FVCL_ErrorCode::LICENSE_ERROR ライセンスがありません。
1 FVCL_ErrorCode::FAILED_TO_ALLOCATE メモリが不足しています。
11 FVCL_ErrorCode::INVALID_PARAMETER ブローブ番号が無効です。
12 FVCL_ErrorCode::INVALID_OBJECT 2値ブローブ解析結果ハンドルが無効です。
FIE:
fnFIE_measure_get_equivalent_circle
FVCL::Blob::CFvBlobData::GetEquivalentCircle ( FVCL::Data::CFvCircle circle) const

周囲長等価円の取得

ブローブの周囲長と円周が等価な円を取得します。
特徴量は下式にて定義されます。

\[{\it diameter\_equicircle} = \frac{perim}{\pi}\]

  • perim : 周囲長
  • diameter_equicircle : 円周等価円 直径
引数
[out]circle
戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
51 FVCL_ErrorCode::LICENSE_ERROR ライセンスがありません。
1 FVCL_ErrorCode::FAILED_TO_ALLOCATE メモリが不足しています。
11 FVCL_ErrorCode::INVALID_PARAMETER ブローブ番号が無効です。
12 FVCL_ErrorCode::INVALID_OBJECT 2値ブローブ解析結果ハンドルが無効です。
FIE:
fnFIE_measure_get_equivalent_circle
FVCL::Blob::CFvBlobData::GetRect1 ( ) const

外接矩形の取得 (傾きなし)

ブローブの外接矩形を取得します。

戻り値
外接矩形を返します。
例外
FVCL::CFveException処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode からエラーコードを取得できます。
エラーコード:
定数 内容
51 FVCL_ErrorCode::LICENSE_ERROR ライセンスがありません。
1 FVCL_ErrorCode::FAILED_TO_ALLOCATE メモリが不足しています。
11 FVCL_ErrorCode::INVALID_PARAMETER ブローブ番号が無効です。
12 FVCL_ErrorCode::INVALID_OBJECT 2値ブローブ解析結果ハンドルが無効です。
FIE:
fnFIE_measure_get_xyrange
参照
CFvBlobData::GetXmin
CFvBlobData::GetYmin
CFvBlobData::GetXmax
CFvBlobData::GetYmax
FVCL::Blob::CFvBlobData::GetRect1Area ( ) const

外接矩形面積の取得

ブローブの外接矩形の面積を取得します。
特徴量は下式にて定義されます。

\[{\it area} = {\it xdiff} \times {\it ydiff}\]

  • xdiff : 外接矩形横サイズ
  • ydiff : 外接矩形縦サイズ
戻り値
外接矩形面積を返します。
例外
FVCL::CFveException処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode からエラーコードを取得できます。
エラーコード:
定数 内容
51 FVCL_ErrorCode::LICENSE_ERROR ライセンスがありません。
11 FVCL_ErrorCode::INVALID_PARAMETER ブローブ番号が無効です。
12 FVCL_ErrorCode::INVALID_OBJECT 2値ブローブ解析結果ハンドルが無効です。
FIE:
fnFIE_measure_get_rect1_area
FVCL::Blob::CFvBlobData::GetRect1Area ( UINT area) const

外接矩形面積の取得

ブローブの外接矩形の面積を取得します。
特徴量は下式にて定義されます。

\[{\it area} = {\it xdiff} \times {\it ydiff}\]

  • xdiff : 外接矩形横サイズ
  • ydiff : 外接矩形縦サイズ
引数
[out]area面積
戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
51 FVCL_ErrorCode::LICENSE_ERROR ライセンスがありません。
11 FVCL_ErrorCode::INVALID_PARAMETER ブローブ番号が無効です。
12 FVCL_ErrorCode::INVALID_OBJECT 2値ブローブ解析結果ハンドルが無効です。
FIE:
fnFIE_measure_get_rect1_area
FVCL::Blob::CFvBlobData::GetRect1Lratio ( ) const

外接矩形縦横比の取得

ブローブの外接矩形縦横比を取得します。
特徴量は下式にて定義されます。

\[{\it ratio} = \frac{\it ydiff}{\it xdiff}\]

  • xdiff : 外接矩形横サイズ
  • ydiff : 外接矩形縦サイズ
戻り値
外接矩形縦横比を返します。
例外
FVCL::CFveException処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode からエラーコードを取得できます。
エラーコード:
定数 内容
51 FVCL_ErrorCode::LICENSE_ERROR ライセンスがありません。
11 FVCL_ErrorCode::INVALID_PARAMETER ブローブ番号が無効です。
12 FVCL_ErrorCode::INVALID_OBJECT 2値ブローブ解析結果ハンドルが無効です。
FIE:
fnFIE_measure_get_rect1_lratio
FVCL::Blob::CFvBlobData::GetRect1Lratio ( DOUBLE ratio) const

外接矩形縦横比の取得

ブローブの外接矩形縦横比を取得します。
特徴量は下式にて定義されます。

\[{\it ratio} = \frac{\it ydiff}{\it xdiff}\]

  • xdiff : 外接矩形横サイズ
  • ydiff : 外接矩形縦サイズ
引数
[out]ratio縦横比
戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
51 FVCL_ErrorCode::LICENSE_ERROR ライセンスがありません。
11 FVCL_ErrorCode::INVALID_PARAMETER ブローブ番号が無効です。
12 FVCL_ErrorCode::INVALID_OBJECT 2値ブローブ解析結果ハンドルが無効です。
FIE:
fnFIE_measure_get_rect1_lratio
FVCL::Blob::CFvBlobData::GetRect1Sratio ( ) const

外接矩形面積比の取得

ブローブの外接矩形面積比を取得します。
特徴量は下式にて定義されます。

\[{\it ratio} = \frac{area}{\it rect1\_area}\]

戻り値
外接矩形面積比を返します。
例外
FVCL::CFveException処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode からエラーコードを取得できます。
エラーコード:
定数 内容
51 FVCL_ErrorCode::LICENSE_ERROR ライセンスがありません。
11 FVCL_ErrorCode::INVALID_PARAMETER ブローブ番号が無効です。
12 FVCL_ErrorCode::INVALID_OBJECT 2値ブローブ解析結果ハンドルが無効です。
FIE:
fnFIE_measure_get_rect1_sratio
FVCL::Blob::CFvBlobData::GetRect1Sratio ( DOUBLE ratio) const

外接矩形面積比の取得

ブローブの外接矩形面積比を取得します。
特徴量は下式にて定義されます。

\[{\it ratio} = \frac{area}{\it rect1\_area}\]

引数
[out]ratio面積比
戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
51 FVCL_ErrorCode::LICENSE_ERROR ライセンスがありません。
11 FVCL_ErrorCode::INVALID_PARAMETER ブローブ番号が無効です。
12 FVCL_ErrorCode::INVALID_OBJECT 2値ブローブ解析結果ハンドルが無効です。
FIE:
fnFIE_measure_get_rect1_sratio
FVCL::Blob::CFvBlobData::GetRect2 ( ) const

外接長方形の取得 (傾きあり)

ブローブの外接長方形を取得します。
GetRect2Pos が返す値と同様です。

戻り値
外接長方形を多角形として返します。
例外
FVCL::CFveException処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode からエラーコードを取得できます。
エラーコード:
定数 内容
51 FVCL_ErrorCode::LICENSE_ERROR ライセンスがありません。
1 FVCL_ErrorCode::FAILED_TO_ALLOCATE メモリが不足しています。
11 FVCL_ErrorCode::INVALID_PARAMETER ブローブ番号が無効です。
12 FVCL_ErrorCode::INVALID_OBJECT 2値ブローブ解析結果ハンドルが無効です。
解説:
座標点列は、0度のときに画像座標系で左上となる点を始点に、時計回りに頂点を返します。
blob_rect2pos.png
注意:
  • 背景ブローブからは取得できません。

FIE:
fnFIE_measure_get_rect2pos
参照
CFvBlobData::GetRect2Pos
FVCL::Blob::CFvBlobData::GetRect2Pos ( ) const

外接長方形の頂点座標の取得

ブローブの外接長方形の4頂点座標を取得します。

戻り値
頂点座標を返します。
例外
FVCL::CFveException処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode からエラーコードを取得できます。
エラーコード:
定数 内容
51 FVCL_ErrorCode::LICENSE_ERROR ライセンスがありません。
11 FVCL_ErrorCode::INVALID_PARAMETER ブローブ番号が無効です。
12 FVCL_ErrorCode::INVALID_OBJECT 2値ブローブ解析結果ハンドルが無効です。
FIE:
fnFIE_measure_get_rect2pos
解説:
座標点列は、0度のときに画像座標系で左上となる点を始点に、時計回りに頂点を返します。
blob_rect2pos.png
注意:
  • 背景ブローブからは取得できません。

FVCL::Blob::CFvBlobData::GetRect2Pos ( FVCL::CFvMultiData< FVCL::Data::CFvPoint > *  points) const

外接長方形の頂点座標の取得

ブローブの外接長方形の4頂点座標を取得します。

引数
[out]points頂点座標
戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
51 FVCL_ErrorCode::LICENSE_ERROR ライセンスがありません。
11 FVCL_ErrorCode::INVALID_PARAMETER ブローブ番号が無効です。
12 FVCL_ErrorCode::INVALID_OBJECT 2値ブローブ解析結果ハンドルが無効です。
FIE:
fnFIE_measure_get_rect2pos
解説:
座標点列は、0度のときに画像座標系で左上となる点を始点に、時計回りに頂点を返します。
blob_rect2pos.png
注意:
  • 背景ブローブからは取得できません。

バグ:
FVCLblob v1.1.0.1: 配列データのコピー処理が非効率だった為、改良しました。
FVCL::Blob::CFvBlobData::GetRect2Lsize ( ) const

外接長方形横長の取得

ブローブの外接長方形横長を取得します。

詳しくは GetRect2Size の説明をご参照ください。

戻り値
外接長方形横長を返します。
例外
FVCL::CFveException処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode からエラーコードを取得できます。
エラーコード:
定数 内容
51 FVCL_ErrorCode::LICENSE_ERROR ライセンスがありません。
11 FVCL_ErrorCode::INVALID_PARAMETER ブローブ番号が無効です。
12 FVCL_ErrorCode::INVALID_OBJECT 2値ブローブ解析結果ハンドルが無効です。
FIE:
fnFIE_measure_get_rect2_size
参照
GetRect2Size
FVCL::Blob::CFvBlobData::GetRect2Wsize ( ) const

外接長方形縦長の取得

ブローブの外接長方形縦長を取得します。

詳しくは GetRect2Size の説明をご参照ください。

戻り値
外接長方形縦長を返します。
例外
FVCL::CFveException処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode からエラーコードを取得できます。
エラーコード:
定数 内容
51 FVCL_ErrorCode::LICENSE_ERROR ライセンスがありません。
11 FVCL_ErrorCode::INVALID_PARAMETER ブローブ番号が無効です。
12 FVCL_ErrorCode::INVALID_OBJECT 2値ブローブ解析結果ハンドルが無効です。
FIE:
fnFIE_measure_get_rect2_size
参照
GetRect2Size
FVCL::Blob::CFvBlobData::GetRect2Size ( DOUBLE lsize,
DOUBLE wsize 
) const

外接長方形の取得

ブローブの外接長方形を取得します。

引数
[out]lsize外接長方形横長
[out]wsize外接長方形縦長
戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
51 FVCL_ErrorCode::LICENSE_ERROR ライセンスがありません。
11 FVCL_ErrorCode::INVALID_PARAMETER ブローブ番号が無効です。
12 FVCL_ErrorCode::INVALID_OBJECT 2値ブローブ解析結果ハンドルが無効です。
FIE:
fnFIE_measure_get_rect2_size
解説:
慣性主軸と同じ傾きの、領域に外接する長方形のサイズを表す特徴量です。
慣性主軸とは慣性等価楕円の主軸のことで、 axistheta と本ライブラリでは表記しています。 領域内の点(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)で囲まれる 矩形分の広がりを持っているという定義で外接長方形を求めています。( GetFeretDiameter 参照 )
blob_rect2.png
  • axistheta : 慣性等価楕円 主軸傾き(慣性主軸角)
FVCL::Blob::CFvBlobData::GetRect2Area ( ) const

外接長方形面積の取得

ブローブの外接長方形面積を取得します。
特徴量は下式にて定義されます。

\[{\it area} = wsize \times lsize \]

  • lsize : 外接長方形横長
  • wsize : 外接長方形縦長
戻り値
外接長方形面積を返します。
例外
FVCL::CFveException処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode からエラーコードを取得できます。
エラーコード:
定数 内容
51 FVCL_ErrorCode::LICENSE_ERROR ライセンスがありません。
11 FVCL_ErrorCode::INVALID_PARAMETER ブローブ番号が無効です。
12 FVCL_ErrorCode::INVALID_OBJECT 2値ブローブ解析結果ハンドルが無効です。
FIE:
fnFIE_measure_get_rect2_area
解説:
慣性主軸と同じ傾きの、領域に外接する長方形の面積を表す特徴量です。
慣性主軸とは慣性等価楕円の主軸のことで、 axistheta と本ライブラリでは表記しています。
FVCL::Blob::CFvBlobData::GetRect2Area ( DOUBLE area) const

外接長方形面積の取得

ブローブの外接長方形面積を取得します。
特徴量は下式にて定義されます。

\[{\it area} = wsize \times lsize \]

  • lsize : 外接長方形横長
  • wsize : 外接長方形縦長
引数
[out]area外接長方形面積
戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
51 FVCL_ErrorCode::LICENSE_ERROR ライセンスがありません。
11 FVCL_ErrorCode::INVALID_PARAMETER ブローブ番号が無効です。
12 FVCL_ErrorCode::INVALID_OBJECT 2値ブローブ解析結果ハンドルが無効です。
FIE:
fnFIE_measure_get_rect2_area
解説:
慣性主軸と同じ傾きの、領域に外接する長方形の面積を表す特徴量です。
慣性主軸とは慣性等価楕円の主軸のことで、 axistheta と本ライブラリでは表記しています。
FVCL::Blob::CFvBlobData::GetRect2Lratio ( ) const

外接長方形縦横比の取得

ブローブの外接長方形縦横比を取得します。
特徴量は下式にて定義されます。

\[{\it ratio} = \frac{wsize}{lsize}\]

  • lsize : 外接長方形横長
  • wsize : 外接長方形縦長
戻り値
外接長方形縦横比を返します。
例外
FVCL::CFveException処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode からエラーコードを取得できます。
エラーコード:
定数 内容
51 FVCL_ErrorCode::LICENSE_ERROR ライセンスがありません。
11 FVCL_ErrorCode::INVALID_PARAMETER ブローブ番号が無効です。
12 FVCL_ErrorCode::INVALID_OBJECT 2値ブローブ解析結果ハンドルが無効です。
FIE:
fnFIE_measure_get_rect2_lratio
解説:
慣性主軸と同じ傾きの、領域に外接する長方形の縦横比を表す特徴量です。
慣性主軸とは慣性等価楕円の主軸のことで、 axistheta と本ライブラリでは表記しています。
FVCL::Blob::CFvBlobData::GetRect2Lratio ( DOUBLE ratio) const

外接長方形縦横比の取得

ブローブの外接長方形縦横比を取得します。
特徴量は下式にて定義されます。

\[{\it ratio} = \frac{wsize}{lsize}\]

  • lsize : 外接長方形横長
  • wsize : 外接長方形縦長
引数
[out]ratio外接長方形縦横比
戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
51 FVCL_ErrorCode::LICENSE_ERROR ライセンスがありません。
11 FVCL_ErrorCode::INVALID_PARAMETER ブローブ番号が無効です。
12 FVCL_ErrorCode::INVALID_OBJECT 2値ブローブ解析結果ハンドルが無効です。
FIE:
fnFIE_measure_get_rect2_lratio
解説:
慣性主軸と同じ傾きの、領域に外接する長方形の縦横比を表す特徴量です。
慣性主軸とは慣性等価楕円の主軸のことで、 axistheta と本ライブラリでは表記しています。
FVCL::Blob::CFvBlobData::GetRect2Sratio ( ) const

外接長方形面積比の取得

ブローブの外接長方形面積比を取得します。
特徴量は下式にて定義されます。

\[{\it ratio} = \frac{area}{\it rect2\_area}\]

戻り値
外接長方形面積比を返します。
例外
FVCL::CFveException処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode からエラーコードを取得できます。
エラーコード:
定数 内容
51 FVCL_ErrorCode::LICENSE_ERROR ライセンスがありません。
11 FVCL_ErrorCode::INVALID_PARAMETER ブローブ番号が無効です。
12 FVCL_ErrorCode::INVALID_OBJECT 2値ブローブ解析結果ハンドルが無効です。
FIE:
fnFIE_measure_get_rect2_sratio
解説:
慣性主軸と同じ傾きの領域に外接する長方形の面積比を表す特徴量です。
慣性主軸とは慣性等価楕円の主軸のことで、 axistheta と本ライブラリでは表記しています。
FVCL::Blob::CFvBlobData::GetRect2Sratio ( DOUBLE ratio) const

外接長方形面積比の取得

ブローブの外接長方形面積比を取得します。
特徴量は下式にて定義されます。

\[{\it ratio} = \frac{area}{\it rect2\_area}\]

引数
[out]ratio外接長方形面積比
戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
51 FVCL_ErrorCode::LICENSE_ERROR ライセンスがありません。
11 FVCL_ErrorCode::INVALID_PARAMETER ブローブ番号が無効です。
12 FVCL_ErrorCode::INVALID_OBJECT 2値ブローブ解析結果ハンドルが無効です。
FIE:
fnFIE_measure_get_rect2_sratio
解説:
慣性主軸と同じ傾きの領域に外接する長方形の面積比を表す特徴量です。
慣性主軸とは慣性等価楕円の主軸のことで、 axistheta と本ライブラリでは表記しています。
FVCL::Blob::CFvBlobData::GetFeretDiameter ( DOUBLE  theta,
INT  mode 
) const

フェレ径の取得

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

引数
[in]theta計測角度(ラジアン)
[in]mode画素領域モード
  • 0: 点で計測
  • 1: 矩形の広がりを持つ点で計測

戻り値
フェレ径を返します。
例外
FVCL::CFveException処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode からエラーコードを取得できます。
エラーコード:
定数 内容
51 FVCL_ErrorCode::LICENSE_ERROR ライセンスがありません。
11 FVCL_ErrorCode::INVALID_PARAMETER ブローブ番号が無効です。
12 FVCL_ErrorCode::INVALID_OBJECT 2値ブローブ解析結果ハンドルが無効です。
FIE:
fnFIE_measure_get_feret_diameter
解説:
フェレ径は、座標点の広がりを考える場合と、考えない場合の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度で計測したフェレ径の値は $\sqrt{2}$となります。
blob_feret_1pix.png
4画素の正方形領域に対して、45度でのフェレ径の、各モードでの例を下図に示します。
blob_feret_4pix.png
フェレ径(Feret's diameter)とは
フェレ径とは、物体が2本の平行な直線によって挟まれた時の2直線の距離です。 下図のFは、斜めに傾いた2直線に領域が挟まれた場合の直線間距離ですが、これがフェレ径のイメージです。 同じく下図のFxが水平方向のフェレ径、Fyが垂直方向のフェレ径になります。 なお点の広がりを考えた場合は、Fxは xdiff と、Fyは ydiff とそれぞれ等しい値となります。
blob_feret1.png
角度について
引数の角度(theta)には幅を計測する軸とX軸がなす角度を入力してください。
blob_feret2.png
FVCL::Blob::CFvBlobData::GetFeretDiameter ( DOUBLE  theta,
INT  mode,
DOUBLE diameter 
) const

フェレ径の取得

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

引数
[in]theta計測角度(ラジアン)
[in]mode画素領域モード
  • 0: 点で計測
  • 1: 矩形の広がりを持つ点で計測

[out]diameterフェレ径
戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
51 FVCL_ErrorCode::LICENSE_ERROR ライセンスがありません。
11 FVCL_ErrorCode::INVALID_PARAMETER ブローブ番号が無効です。
12 FVCL_ErrorCode::INVALID_OBJECT 2値ブローブ解析結果ハンドルが無効です。
FIE:
fnFIE_measure_get_feret_diameter
解説:
フェレ径は、座標点の広がりを考える場合と、考えない場合の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度で計測したフェレ径の値は $\sqrt{2}$となります。
blob_feret_1pix.png
4画素の正方形領域に対して、45度でのフェレ径の、各モードでの例を下図に示します。
blob_feret_4pix.png
フェレ径(Feret's diameter)とは
フェレ径とは、物体が2本の平行な直線によって挟まれた時の2直線の距離です。 下図のFは、斜めに傾いた2直線に領域が挟まれた場合の直線間距離ですが、これがフェレ径のイメージです。 同じく下図のFxが水平方向のフェレ径、Fyが垂直方向のフェレ径になります。 なお点の広がりを考えた場合は、Fxは xdiff と、Fyは ydiff とそれぞれ等しい値となります。
blob_feret1.png
角度について
引数の角度(theta)には幅を計測する軸とX軸がなす角度を入力してください。
blob_feret2.png
FVCL::Blob::CFvBlobData::GetFeretDiameterMax ( ) const

最大フェレ径の取得

ブローブの最大フェレ径を取得します。
詳しくは GetFeretDiameterMaxMin の説明をご参照ください。

戻り値
最大フェレ径を返します。
例外
FVCL::CFveException処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode からエラーコードを取得できます。
エラーコード:
定数 内容
51 FVCL_ErrorCode::LICENSE_ERROR ライセンスがありません。
11 FVCL_ErrorCode::INVALID_PARAMETER ブローブ番号が無効です。
12 FVCL_ErrorCode::INVALID_OBJECT 2値ブローブ解析結果ハンドルが無効です。
FIE:
fnFIE_measure_get_feret_diameter_maxmin
参照
GetFeretDiameterMaxMin
FVCL::Blob::CFvBlobData::GetFeretDiameterMaxTheta ( ) const

最大フェレ径の角度の取得

ブローブの最大フェレ径の角度を取得します。
詳しくは GetFeretDiameterMaxMin の説明をご参照ください。

戻り値
最大フェレ径の角度を返します。
例外
FVCL::CFveException処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode からエラーコードを取得できます。
エラーコード:
定数 内容
51 FVCL_ErrorCode::LICENSE_ERROR ライセンスがありません。
11 FVCL_ErrorCode::INVALID_PARAMETER ブローブ番号が無効です。
12 FVCL_ErrorCode::INVALID_OBJECT 2値ブローブ解析結果ハンドルが無効です。
FIE:
fnFIE_measure_get_feret_diameter_maxmin
参照
GetFeretDiameterMaxMin
FVCL::Blob::CFvBlobData::GetFeretDiameterMin ( ) const

最小フェレ径の取得

ブローブの最小フェレ径を取得します。
詳しくは GetFeretDiameterMaxMin の説明をご参照ください。

戻り値
最小フェレ径を返します。
例外
FVCL::CFveException処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode からエラーコードを取得できます。
エラーコード:
定数 内容
51 FVCL_ErrorCode::LICENSE_ERROR ライセンスがありません。
11 FVCL_ErrorCode::INVALID_PARAMETER ブローブ番号が無効です。
12 FVCL_ErrorCode::INVALID_OBJECT 2値ブローブ解析結果ハンドルが無効です。
FIE:
fnFIE_measure_get_feret_diameter_maxmin
参照
GetFeretDiameterMaxMin
FVCL::Blob::CFvBlobData::GetFeretDiameterMinTheta ( ) const

最小フェレ径の角度の取得

ブローブの最小フェレ径の角度を取得します。
詳しくは GetFeretDiameterMaxMin の説明をご参照ください。

戻り値
最小フェレ径の角度を返します。
例外
FVCL::CFveException処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode からエラーコードを取得できます。
エラーコード:
定数 内容
51 FVCL_ErrorCode::LICENSE_ERROR ライセンスがありません。
11 FVCL_ErrorCode::INVALID_PARAMETER ブローブ番号が無効です。
12 FVCL_ErrorCode::INVALID_OBJECT 2値ブローブ解析結果ハンドルが無効です。
FIE:
fnFIE_measure_get_feret_diameter_maxmin
参照
GetFeretDiameterMaxMin
FVCL::Blob::CFvBlobData::GetFeretDiameterMaxMin ( DOUBLE feretmax,
DOUBLE fmax_theta,
DOUBLE feretmin,
DOUBLE fmin_theta 
) const

最大フェレ径と最小フェレ径の取得

ブローブの最大フェレ径と最小フェレ径を取得します。
領域の フェレ径 が最大となる計測角度とそのときのフェレ径、 また、最小となる計測角度とそのときのフェレ径です。 角度値(fmax_theta, f_min_theta)はラジアンで、角度範囲は $ -\pi \le \theta \le \pi$ です

引数
[out]feretmax最大フェレ径
[out]fmax_theta最大フェレ径の角度
[out]feretmin最小フェレ径
[out]fmin_theta最小フェレ径の角度
戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
51 FVCL_ErrorCode::LICENSE_ERROR ライセンスがありません。
11 FVCL_ErrorCode::INVALID_PARAMETER ブローブ番号が無効です。
12 FVCL_ErrorCode::INVALID_OBJECT 2値ブローブ解析結果ハンドルが無効です。
FIE:
fnFIE_measure_get_feret_diameter_maxmin
FVCL::Blob::CFvBlobData::GetPerimeter ( ) const

周囲長の取得

ブローブの周囲長を取得します。
ブローブの境界点列のユークリッド距離を周囲長と定義し、その値を計算します。

戻り値
周囲長を返します。
例外
FVCL::CFveException処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode からエラーコードを取得できます。
エラーコード:
定数 内容
51 FVCL_ErrorCode::LICENSE_ERROR ライセンスがありません。
1 FVCL_ErrorCode::FAILED_TO_ALLOCATE メモリが不足しています。
11 FVCL_ErrorCode::INVALID_PARAMETER ブローブ番号が無効です。
12 FVCL_ErrorCode::INVALID_OBJECT 2値ブローブ解析結果ハンドルが無効です。
FIE:
fnFIE_measure_get_perimeter
注意
  • 周囲座標は連結性の設定により値が変化します。
  • 連結性の設定は、FVCL::Blob::CFvBlobParam::SetNeighborhood にて設定します。 ブローブ解析の場合は、前景ブローブの連結性と、背景ブローブの連結性が逆になりますので注意してください。

FVCL::Blob::CFvBlobData::GetPerimeter ( DOUBLE perimeter) const

周囲長の取得

ブローブの周囲長を取得します。
ブローブの境界点列のユークリッド距離を周囲長と定義し、その値を計算します。

引数
[out]perimeter周囲長
戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
51 FVCL_ErrorCode::LICENSE_ERROR ライセンスがありません。
1 FVCL_ErrorCode::FAILED_TO_ALLOCATE メモリが不足しています。
11 FVCL_ErrorCode::INVALID_PARAMETER ブローブ番号が無効です。
12 FVCL_ErrorCode::INVALID_OBJECT 2値ブローブ解析結果ハンドルが無効です。
FIE:
fnFIE_measure_get_perimeter
注意
  • 周囲座標は連結性の設定により値が変化します。
  • 連結性の設定は、FVCL::Blob::CFvBlobParam::SetNeighborhood にて設定します。 ブローブ解析の場合は、前景ブローブの連結性と、背景ブローブの連結性が逆になりますので注意してください。

FVCL::Blob::CFvBlobData::GetPPS ( ) const

面積周囲長比の取得

ブローブの面積周囲長比を取得します。
特徴量は下式にて定義されます。

\[ pps = \frac{perim^2}{st} \]

戻り値
面積周囲長比を返します。
例外
FVCL::CFveException処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode からエラーコードを取得できます。
エラーコード:
定数 内容
51 FVCL_ErrorCode::LICENSE_ERROR ライセンスがありません。
1 FVCL_ErrorCode::FAILED_TO_ALLOCATE メモリが不足しています。
11 FVCL_ErrorCode::INVALID_PARAMETER ブローブ番号が無効です。
12 FVCL_ErrorCode::INVALID_OBJECT 2値ブローブ解析結果ハンドルが無効です。
FIE:
fnFIE_measure_get_pps
FVCL::Blob::CFvBlobData::GetPPS ( DOUBLE pps) const

面積周囲長比の取得

ブローブの面積周囲長比を取得します。
特徴量は下式にて定義されます。

\[ pps = \frac{perim^2}{st} \]

引数
[out]pps面積周囲長比
戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
51 FVCL_ErrorCode::LICENSE_ERROR ライセンスがありません。
1 FVCL_ErrorCode::FAILED_TO_ALLOCATE メモリが不足しています。
11 FVCL_ErrorCode::INVALID_PARAMETER ブローブ番号が無効です。
12 FVCL_ErrorCode::INVALID_OBJECT 2値ブローブ解析結果ハンドルが無効です。
FIE:
fnFIE_measure_get_pps
FVCL::Blob::CFvBlobData::GetConvex2d ( ) const

凸包の取得

ブローブに外接する凸包を取得します。

戻り値
凸包を返します。
例外
FVCL::CFveException処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode からエラーコードを取得できます。
エラーコード:
定数 内容
51 FVCL_ErrorCode::LICENSE_ERROR ライセンスがありません。
1 FVCL_ErrorCode::FAILED_TO_ALLOCATE メモリが不足しています。
11 FVCL_ErrorCode::INVALID_PARAMETER ブローブ番号が無効です。
12 FVCL_ErrorCode::INVALID_OBJECT 2値ブローブ解析結果ハンドルが無効です。
29 FVCL_ErrorCode::NOT_CALCULABLE 計算できません。
FIE:
fnFIE_measure_get_convex2d
解説:
凸包とは、その領域を含む最小の凸多角形のことです。
直感的に言い表すと、木の板に釘を(同じ面に)いくつか打ち付けた後、 その釘がすべて入るように外側から輪ゴムで留めたときにできる輪ゴムの形が凸包となります。
データ解析的には凸多角形という非常に扱い易い形で点集合全体を近似している、と考えられます。
blob_convex2d.png
注意:
  • 背景ブローブからは取得できません。
  • ブローブの全点が一直線上にある場合はエラーになります。
  • xdiff, ydiff が 65535 以下の条件を満たさない場合はエラーになります。
  • ラン数が非常に多い場合は凸包が計算できずエラーになります。((ランの数+1)*2*sizeof(PNT_T)≧UI32_MAX となる場合)

FVCL::Blob::CFvBlobData::GetConvex2d ( FVCL::CFvMultiData< FVCL::Data::CFvPoint > *  points) const

凸包の取得

ブローブに外接する凸包を取得します。

引数
[out]points出力される凸包の頂点
戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
51 FVCL_ErrorCode::LICENSE_ERROR ライセンスがありません。
1 FVCL_ErrorCode::FAILED_TO_ALLOCATE メモリが不足しています。
11 FVCL_ErrorCode::INVALID_PARAMETER ブローブ番号が無効です。
12 FVCL_ErrorCode::INVALID_OBJECT 2値ブローブ解析結果ハンドルが無効です。
29 FVCL_ErrorCode::NOT_CALCULABLE 計算できません。
FIE:
fnFIE_measure_get_convex2d
解説:
凸包とは、その領域を含む最小の凸多角形のことです。
直感的に言い表すと、木の板に釘を(同じ面に)いくつか打ち付けた後、 その釘がすべて入るように外側から輪ゴムで留めたときにできる輪ゴムの形が凸包となります。
データ解析的には凸多角形という非常に扱い易い形で点集合全体を近似している、と考えられます。
blob_convex2d.png
注意:
  • 背景ブローブからは取得できません。
  • ブローブの全点が一直線上にある場合はエラーになります。
  • xdiff, ydiff が 65535 以下の条件を満たさない場合はエラーになります。
  • ラン数が非常に多い場合は凸包が計算できずエラーになります。((ランの数+1)*2*sizeof(PNT_T)≧UI32_MAX となる場合)

バグ:
FVCLblob v1.1.0.1: 配列データのコピー処理が非効率だった為、改良しました。
FVCL::Blob::CFvBlobData::GetConvex2d ( FVCL::CFvBuffer< PNT_T > *  points) const

凸包の取得

ブローブに外接する凸包を取得します。

引数
[out]points出力される凸包の頂点
戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
51 FVCL_ErrorCode::LICENSE_ERROR ライセンスがありません。
1 FVCL_ErrorCode::FAILED_TO_ALLOCATE メモリが不足しています。
11 FVCL_ErrorCode::INVALID_PARAMETER ブローブ番号が無効です。
12 FVCL_ErrorCode::INVALID_OBJECT 2値ブローブ解析結果ハンドルが無効です。
29 FVCL_ErrorCode::NOT_CALCULABLE 計算できません。
FIE:
fnFIE_measure_get_convex2d
解説:
凸包とは、その領域を含む最小の凸多角形のことです。
直感的に言い表すと、木の板に釘を(同じ面に)いくつか打ち付けた後、 その釘がすべて入るように外側から輪ゴムで留めたときにできる輪ゴムの形が凸包となります。
データ解析的には凸多角形という非常に扱い易い形で点集合全体を近似している、と考えられます。
blob_convex2d.png
注意:
  • 背景ブローブからは取得できません。
  • ブローブの全点が一直線上にある場合はエラーになります。
  • xdiff, ydiff が 65535 以下の条件を満たさない場合はエラーになります。
  • ラン数が非常に多い場合は凸包が計算できずエラーになります。((ランの数+1)*2*sizeof(PNT_T)≧UI32_MAX となる場合)

FVCL::Blob::CFvBlobData::GetConvexArea ( ) const

凸包面積の取得

ブローブの凸包面積を取得します。
凸包については GetConvex2d を参照してください。

戻り値
凸包面積を返します。
例外
FVCL::CFveException処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode からエラーコードを取得できます。
エラーコード:
定数 内容
51 FVCL_ErrorCode::LICENSE_ERROR ライセンスがありません。
1 FVCL_ErrorCode::FAILED_TO_ALLOCATE メモリが不足しています。
11 FVCL_ErrorCode::INVALID_PARAMETER ブローブ番号が無効です。
12 FVCL_ErrorCode::INVALID_OBJECT 2値ブローブ解析結果ハンドルが無効です。
29 FVCL_ErrorCode::NOT_CALCULABLE 計算できません。
FIE:
fnFIE_measure_get_convexfeature
FVCL::Blob::CFvBlobData::GetConvexPerim ( ) const

凸包周囲長の取得

ブローブの凸包周囲長を取得します。
凸包については GetConvex2d を参照してください。

戻り値
凸包周囲長を返します。
例外
FVCL::CFveException処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode からエラーコードを取得できます。
エラーコード:
定数 内容
51 FVCL_ErrorCode::LICENSE_ERROR ライセンスがありません。
1 FVCL_ErrorCode::FAILED_TO_ALLOCATE メモリが不足しています。
11 FVCL_ErrorCode::INVALID_PARAMETER ブローブ番号が無効です。
12 FVCL_ErrorCode::INVALID_OBJECT 2値ブローブ解析結果ハンドルが無効です。
29 FVCL_ErrorCode::NOT_CALCULABLE 計算できません。
FIE:
fnFIE_measure_get_convexfeature
FVCL::Blob::CFvBlobData::GetConvexFeature ( DOUBLE convex_area,
DOUBLE convex_perim 
) const

凸包面積・周囲長の取得

ブローブの凸包の面積と周囲長を取得します。
凸包については GetConvex2d を参照してください。

引数
[out]convex_area面積
[out]convex_perim周囲長
戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
51 FVCL_ErrorCode::LICENSE_ERROR ライセンスがありません。
1 FVCL_ErrorCode::FAILED_TO_ALLOCATE メモリが不足しています。
11 FVCL_ErrorCode::INVALID_PARAMETER ブローブ番号が無効です。
12 FVCL_ErrorCode::INVALID_OBJECT 2値ブローブ解析結果ハンドルが無効です。
29 FVCL_ErrorCode::NOT_CALCULABLE 計算できません。
FIE:
fnFIE_measure_get_convexfeature
FVCL::Blob::CFvBlobData::GetConvexAreaRatio ( ) const

凸包面積比の取得

凸包の面積比を取得します。

  • 凸包の面積比 = 領域の面積 / 凸包面積


詳しくは GetConvexRatio の説明をご参照ください。

戻り値
凸包面積比を返します。
例外
FVCL::CFveException処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode からエラーコードを取得できます。
エラーコード:
定数 内容
51 FVCL_ErrorCode::LICENSE_ERROR ライセンスがありません。
1 FVCL_ErrorCode::FAILED_TO_ALLOCATE メモリが不足しています。
11 FVCL_ErrorCode::INVALID_PARAMETER ブローブ番号が無効です。
12 FVCL_ErrorCode::INVALID_OBJECT 2値ブローブ解析結果ハンドルが無効です。
29 FVCL_ErrorCode::NOT_CALCULABLE 計算できません。
FIE:
fnFIE_measure_get_convexratio
参照
GetConvexRatio
FVCL::Blob::CFvBlobData::GetConvexPerimRatio ( ) const

凸包周囲長比の取得

凸包の周囲長比を取得します。

  • 凸包の周囲長比 = 領域の面積 / 凸包周囲長


詳しくは GetConvexRatio の説明をご参照ください。

戻り値
凸包周囲長比を返します。
例外
FVCL::CFveException処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode からエラーコードを取得できます。
エラーコード:
定数 内容
51 FVCL_ErrorCode::LICENSE_ERROR ライセンスがありません。
1 FVCL_ErrorCode::FAILED_TO_ALLOCATE メモリが不足しています。
11 FVCL_ErrorCode::INVALID_PARAMETER ブローブ番号が無効です。
12 FVCL_ErrorCode::INVALID_OBJECT 2値ブローブ解析結果ハンドルが無効です。
29 FVCL_ErrorCode::NOT_CALCULABLE 計算できません。
FIE:
fnFIE_measure_get_convexratio
参照
GetConvexRatio
FVCL::Blob::CFvBlobData::GetConvexRatio ( DOUBLE convex_area_ratio,
DOUBLE convex_perim_ratio 
) const

凸包面積比・周囲長比の取得

凸包の面積比と周囲長比を取得します。

  • 凸包の面積比 = 領域の面積 / 凸包面積
  • 凸包の周囲長比 = 領域の面積 / 凸包周囲長


それぞれ下式にて定義されます。

\[{\it convex\_arearatio} = \frac{\it area}{\it convex\_area}\]

\[{\it convex\_perimratio} = \frac{\it perim}{\it convex\_perim}\]

引数
[out]convex_area_ratio面積比
[out]convex_perim_ratio周囲長比
戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
51 FVCL_ErrorCode::LICENSE_ERROR ライセンスがありません。
1 FVCL_ErrorCode::FAILED_TO_ALLOCATE メモリが不足しています。
11 FVCL_ErrorCode::INVALID_PARAMETER ブローブ番号が無効です。
12 FVCL_ErrorCode::INVALID_OBJECT 2値ブローブ解析結果ハンドルが無効です。
29 FVCL_ErrorCode::NOT_CALCULABLE 計算できません。
FIE:
fnFIE_measure_get_convexratio
FVCL::Blob::CFvBlobData::GetCircmCircle ( ) const

最小外接円の取得

ブローブの最小外接円を取得します。

戻り値
最小外接円を返します。
例外
FVCL::CFveException処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode からエラーコードを取得できます。
エラーコード:
定数 内容
51 FVCL_ErrorCode::LICENSE_ERROR ライセンスがありません。
1 FVCL_ErrorCode::FAILED_TO_ALLOCATE メモリが不足しています。
11 FVCL_ErrorCode::INVALID_PARAMETER ブローブ番号が無効です。
12 FVCL_ErrorCode::INVALID_OBJECT 2値ブローブ解析結果ハンドルが無効です。
29 FVCL_ErrorCode::NOT_CALCULABLE 計算できません。
FIE:
fnFIE_measure_get_circmcircle
解説:
最小外接円(最小包含円とも呼ばれる)とは、 領域外周の点の2点または3点に接する(点を通る)円で、 かつ領域内のすべての点を内包する円のうち最小のものです。
blob_circumcircle.png
最小外接円例
但し、点の広がりについては考慮しません。
円と接する点においては、円はその点の中心を通ります。 このため、領域内の点が1点しか無い場合は最小外接円を求めることは出来ません。
FVCL::Blob::CFvBlobData::GetCircmCircle ( FVCL::Data::CFvCircle circle) const

最小外接円の取得

ブローブの最小外接円を取得します。

引数
[out]circle最小外接円
戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
51 FVCL_ErrorCode::LICENSE_ERROR ライセンスがありません。
1 FVCL_ErrorCode::FAILED_TO_ALLOCATE メモリが不足しています。
11 FVCL_ErrorCode::INVALID_PARAMETER ブローブ番号が無効です。
12 FVCL_ErrorCode::INVALID_OBJECT 2値ブローブ解析結果ハンドルが無効です。
29 FVCL_ErrorCode::NOT_CALCULABLE 計算できません。
FIE:
fnFIE_measure_get_circmcircle
解説:
最小外接円(最小包含円とも呼ばれる)とは、 領域外周の点の2点または3点に接する(点を通る)円で、 かつ領域内のすべての点を内包する円のうち最小のものです。
blob_circumcircle.png
最小外接円例
但し、点の広がりについては考慮しません。
円と接する点においては、円はその点の中心を通ります。 このため、領域内の点が1点しか無い場合は最小外接円を求めることは出来ません。
FVCL::Blob::CFvBlobData::GetBoundary ( ) const

周囲座標の取得 (External)

ブローブの境界点列を取得します。

戻り値
境界点列を返します。
例外
FVCL::CFveException処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode からエラーコードを取得できます。
エラーコード:
定数 内容
51 FVCL_ErrorCode::LICENSE_ERROR ライセンスがありません。
1 FVCL_ErrorCode::FAILED_TO_ALLOCATE メモリが不足しています。
11 FVCL_ErrorCode::INVALID_PARAMETER ブローブ番号が無効です。
12 FVCL_ErrorCode::INVALID_OBJECT 2値ブローブ解析結果ハンドルが無効です。
FIE:
fnFIE_measure_get_boundary
解説:
領域の周囲座標列です。 領域の境界には external boundary と internal boundary の2種類がありますが、 本関数では external boundary のみを抽出します。(下図参照)
fie_region_boundary_01.png
また、周囲座標は4連結と8連結の場合で座標が異なることがあります。
fie_region_boundary_02.png
本ライブラリでは境界座標は画像座標系で反時計回りに探索(右手の法則)します。
fie_region_boundary_03.png
領域が2つ以上ある場合(ラベリングするとラベル数が2以上になるとき)でも、すべての領域について境界点列を生成します。 1つの境界点列が終了すると、座標に I32_MIN が格納された点を挿入しています。 また、境界点列が複数ある場合、1 yの昇順、2 xの昇順で境界点列の始点を使ってソートします。
注意:
  • 周囲座標は連結性の設定により値が変化します。
  • 連結性の設定は、FVCL::Blob::CFvBlobParam::SetNeighborhood にて設定します。 ブローブ解析の場合は、前景ブローブの連結性と、背景ブローブの連結性が逆になりますので注意してください。
  • 背景ブローブからは取得できません。

FVCL::Blob::CFvBlobData::GetBoundary ( FVCL::CFvMultiData< FVCL::Data::CFvPoint > *  points) const

周囲座標の取得 (External)

ブローブの境界点列を取得します。

引数
[out]points境界点列
戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
51 FVCL_ErrorCode::LICENSE_ERROR ライセンスがありません。
1 FVCL_ErrorCode::FAILED_TO_ALLOCATE メモリが不足しています。
11 FVCL_ErrorCode::INVALID_PARAMETER ブローブ番号が無効です。
12 FVCL_ErrorCode::INVALID_OBJECT 2値ブローブ解析結果ハンドルが無効です。
FIE:
fnFIE_measure_get_boundary
解説:
領域の周囲座標列です。 領域の境界には external boundary と internal boundary の2種類がありますが、 本関数では external boundary のみを抽出します。(下図参照)
fie_region_boundary_01.png
また、周囲座標は4連結と8連結の場合で座標が異なることがあります。
fie_region_boundary_02.png
本ライブラリでは境界座標は画像座標系で反時計回りに探索(右手の法則)します。
fie_region_boundary_03.png
領域が2つ以上ある場合(ラベリングするとラベル数が2以上になるとき)でも、すべての領域について境界点列を生成します。 1つの境界点列が終了すると、座標に I32_MIN が格納された点を挿入しています。 また、境界点列が複数ある場合、1 yの昇順、2 xの昇順で境界点列の始点を使ってソートします。
注意:
  • 周囲座標は連結性の設定により値が変化します。
  • 連結性の設定は、FVCL::Blob::CFvBlobParam::SetNeighborhood にて設定します。 ブローブ解析の場合は、前景ブローブの連結性と、背景ブローブの連結性が逆になりますので注意してください。
  • 背景ブローブからは取得できません。

バージョン
FVCLblob v1.1.0.1: 配列データのコピー処理が非効率だった為、改良しました。
FVCLblob v1.1.0.1: 配列データの終端に無効データ(-2^31)が含まれていた為、格納しないよう改修しました。
FVCL::Blob::CFvBlobData::GetBoundary ( FVCL::CFvBuffer< PNT_T > *  points) const

周囲座標の取得 (External)

ブローブの境界点列を取得します。

引数
[out]points境界点列
戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
51 FVCL_ErrorCode::LICENSE_ERROR ライセンスがありません。
1 FVCL_ErrorCode::FAILED_TO_ALLOCATE メモリが不足しています。
11 FVCL_ErrorCode::INVALID_PARAMETER ブローブ番号が無効です。
12 FVCL_ErrorCode::INVALID_OBJECT 2値ブローブ解析結果ハンドルが無効です。
FIE:
fnFIE_measure_get_boundary
解説:
領域の周囲座標列です。 領域の境界には external boundary と internal boundary の2種類がありますが、 本関数では external boundary のみを抽出します。(下図参照)
fie_region_boundary_01.png
また、周囲座標は4連結と8連結の場合で座標が異なることがあります。
fie_region_boundary_02.png
本ライブラリでは境界座標は画像座標系で反時計回りに探索(右手の法則)します。
fie_region_boundary_03.png
注意:
  • 周囲座標は連結性の設定により値が変化します。
  • 連結性の設定は、FVCL::Blob::CFvBlobParam::SetNeighborhood にて設定します。 ブローブ解析の場合は、前景ブローブの連結性と、背景ブローブの連結性が逆になりますので注意してください。
  • 背景ブローブからは取得できません。

FVCL::Blob::CFvBlobData::GetBoundaryEx ( INT  connection,
FVCL::CFvBuffer< PNT_T > *  points_ext,
FVCL::CFvBuffer< PNT_T > *  points_int,
bool  contain_stopper = true 
) const

周囲座標の取得

ブローブの境界点列を取得します。

引数
[in]connection連結 [0:blob に従う、4:4連結、8:8連結]
[out]points_ext境界点列(外周) [不要な場合は NULL を指定してください]
[out]points_int境界点列(内周) [不要な場合は NULL を指定してください]
[in]contain_stopperストッパー(I32_MIN の座標)を含めるか否か
戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
51 FVCL_ErrorCode::LICENSE_ERROR ライセンスがありません。
1 FVCL_ErrorCode::FAILED_TO_ALLOCATE メモリが不足しています。
11 FVCL_ErrorCode::INVALID_PARAMETER ブローブ番号が無効です。
12 FVCL_ErrorCode::INVALID_OBJECT 2値ブローブ解析結果ハンドルが無効です。
FIE:
fnFIE_measure_get_boundary_ex
解説:
領域の周囲座標列です。
fie_region_boundary_01.png
また、周囲座標は4連結と8連結の場合で座標が異なることがあります。
fie_region_boundary_02.png
本ライブラリでは境界座標は画像座標系で反時計回りに探索(右手の法則)します。
fie_region_boundary_03.png
領域が2つ以上ある場合(ラベリングするとラベル数が2以上になるとき)でも、すべての領域について境界点列を生成します。 1つの境界点列が終了すると、ストッパー(座標に I32_MIN が格納された点)を挿入しています。 ストッパーが不要な場合は、 contain_stopper に false を指定してください。 また、境界点列が複数ある場合、1 yの昇順、2 xの昇順で境界点列の始点を使ってソートします。
注意:
  • 周囲座標は連結性の設定により値が変化します。
  • 連結性の設定は、FVCL::Blob::CFvBlobParam::SetNeighborhood にて設定します。 ブローブ解析の場合は、前景ブローブの連結性と、背景ブローブの連結性が逆になりますので注意してください。
  • 背景ブローブからは取得できません。

FVCL::Blob::CFvBlobData::GetBoundaryInternal ( ) const

周囲座標の取得 (Internal)

ブローブの境界点列を取得します。

戻り値
境界点列を返します。
例外
FVCL::CFveException処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode からエラーコードを取得できます。
エラーコード:
定数 内容
51 FVCL_ErrorCode::LICENSE_ERROR ライセンスがありません。
1 FVCL_ErrorCode::FAILED_TO_ALLOCATE メモリが不足しています。
11 FVCL_ErrorCode::INVALID_PARAMETER ブローブ番号が無効です。
12 FVCL_ErrorCode::INVALID_OBJECT 2値ブローブ解析結果ハンドルが無効です。
FIE:
fnFIE_measure_get_boundary_ex
解説:
領域の周囲座標列です。 領域の境界には external boundary と internal boundary の2種類がありますが、 本関数では internal boundary のみを抽出します。(下図参照)
fie_region_boundary_01.png
また、周囲座標は4連結と8連結の場合で座標が異なることがあります。
fie_region_boundary_02.png
本ライブラリでは境界座標は画像座標系で反時計回りに探索(右手の法則)します。
fie_region_boundary_03.png
領域が2つ以上ある場合(ラベリングするとラベル数が2以上になるとき)でも、すべての領域について境界点列を生成します。 1つの境界点列が終了すると、ストッパー(座標に I32_MIN が格納された点)を挿入しています。 また、境界点列が複数ある場合、1 yの昇順、2 xの昇順で境界点列の始点を使ってソートします。
注意:
  • 周囲座標は連結性の設定により値が変化します。
  • 連結性の設定は、FVCL::Blob::CFvBlobParam::SetNeighborhood にて設定します。 ブローブ解析の場合は、前景ブローブの連結性と、背景ブローブの連結性が逆になりますので注意してください。
  • 背景ブローブからは取得できません。

FVCL::Blob::CFvBlobData::GetBoundaryInternal ( FVCL::CFvMultiData< FVCL::Data::CFvPoint > *  points) const

周囲座標の取得 (Internal)

ブローブの境界点列を取得します。

引数
[out]points境界点列
戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
51 FVCL_ErrorCode::LICENSE_ERROR ライセンスがありません。
1 FVCL_ErrorCode::FAILED_TO_ALLOCATE メモリが不足しています。
11 FVCL_ErrorCode::INVALID_PARAMETER ブローブ番号が無効です。
12 FVCL_ErrorCode::INVALID_OBJECT 2値ブローブ解析結果ハンドルが無効です。
FIE:
fnFIE_measure_get_boundary_ex
解説:
領域の周囲座標列です。 領域の境界には external boundary と internal boundary の2種類がありますが、 本関数では internal boundary のみを抽出します。(下図参照)
fie_region_boundary_01.png
また、周囲座標は4連結と8連結の場合で座標が異なることがあります。
fie_region_boundary_02.png
本ライブラリでは境界座標は画像座標系で反時計回りに探索(右手の法則)します。
fie_region_boundary_03.png
領域が2つ以上ある場合(ラベリングするとラベル数が2以上になるとき)でも、すべての領域について境界点列を生成します。 1つの境界点列が終了すると、ストッパー(座標に I32_MIN が格納された点)を挿入しています。 また、境界点列が複数ある場合、1 yの昇順、2 xの昇順で境界点列の始点を使ってソートします。
注意:
  • 周囲座標は連結性の設定により値が変化します。
  • 連結性の設定は、FVCL::Blob::CFvBlobParam::SetNeighborhood にて設定します。 ブローブ解析の場合は、前景ブローブの連結性と、背景ブローブの連結性が逆になりますので注意してください。
  • 背景ブローブからは取得できません。

FVCL::Blob::CFvBlobData::GetDistanceToBoundaryMax ( ) const

外周距離の取得 (最大値)

ブローブの重心と境界点列の距離最大値を取得します。

blob_dp.png
戻り値
外周距離最大値を返します。
例外
FVCL::CFveException処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode からエラーコードを取得できます。
エラーコード:
定数 内容
51 FVCL_ErrorCode::LICENSE_ERROR ライセンスがありません。
1 FVCL_ErrorCode::FAILED_TO_ALLOCATE メモリが不足しています。
11 FVCL_ErrorCode::INVALID_PARAMETER ブローブ番号が無効です。
12 FVCL_ErrorCode::INVALID_OBJECT 2値ブローブ解析結果ハンドルが無効です。
FIE:
fnFIE_measure_get_distance_to_boundary
FVCL::Blob::CFvBlobData::GetDistanceToBoundaryMin ( ) const

外周距離の取得 (最小値)

ブローブの重心と境界点列の距離最小値を取得します。

blob_dp.png
戻り値
外周距離最小値を返します。
例外
FVCL::CFveException処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode からエラーコードを取得できます。
エラーコード:
定数 内容
51 FVCL_ErrorCode::LICENSE_ERROR ライセンスがありません。
1 FVCL_ErrorCode::FAILED_TO_ALLOCATE メモリが不足しています。
11 FVCL_ErrorCode::INVALID_PARAMETER ブローブ番号が無効です。
12 FVCL_ErrorCode::INVALID_OBJECT 2値ブローブ解析結果ハンドルが無効です。
FIE:
fnFIE_measure_get_distance_to_boundary
FVCL::Blob::CFvBlobData::GetDistanceToBoundaryAve ( ) const

外周距離の取得 (平均値)

ブローブの重心と境界点列の距離平均値を取得します。

blob_dp.png
戻り値
外周距離平均値を返します。
例外
FVCL::CFveException処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode からエラーコードを取得できます。
エラーコード:
定数 内容
51 FVCL_ErrorCode::LICENSE_ERROR ライセンスがありません。
1 FVCL_ErrorCode::FAILED_TO_ALLOCATE メモリが不足しています。
11 FVCL_ErrorCode::INVALID_PARAMETER ブローブ番号が無効です。
12 FVCL_ErrorCode::INVALID_OBJECT 2値ブローブ解析結果ハンドルが無効です。
FIE:
fnFIE_measure_get_distance_to_boundary
FVCL::Blob::CFvBlobData::GetDistanceToBoundarySigma ( ) const

外周距離の取得 (標準偏差)

ブローブの重心と境界点列の距離標準偏差を取得します。

blob_dp.png
戻り値
外周距離標準偏差を返します。
例外
FVCL::CFveException処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode からエラーコードを取得できます。
エラーコード:
定数 内容
51 FVCL_ErrorCode::LICENSE_ERROR ライセンスがありません。
1 FVCL_ErrorCode::FAILED_TO_ALLOCATE メモリが不足しています。
11 FVCL_ErrorCode::INVALID_PARAMETER ブローブ番号が無効です。
12 FVCL_ErrorCode::INVALID_OBJECT 2値ブローブ解析結果ハンドルが無効です。
FIE:
fnFIE_measure_get_distance_to_boundary
FVCL::Blob::CFvBlobData::GetDistanceToBoundary ( DOUBLE max,
DOUBLE min,
DOUBLE ave,
DOUBLE sigma 
) const

外周距離の取得

ブローブの重心と境界点列の距離最小値、距離最大値、距離平均値、距離標準偏差値を取得します。

blob_dp.png
引数
[out]max外周距離最大値
[out]min外周距離最小値
[out]ave外周距離平均値
[out]sigma外周距離標準偏差値
戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
51 FVCL_ErrorCode::LICENSE_ERROR ライセンスがありません。
1 FVCL_ErrorCode::FAILED_TO_ALLOCATE メモリが不足しています。
11 FVCL_ErrorCode::INVALID_PARAMETER ブローブ番号が無効です。
12 FVCL_ErrorCode::INVALID_OBJECT 2値ブローブ解析結果ハンドルが無効です。
FIE:
fnFIE_measure_get_distance_to_boundary
FVCL::Blob::CFvBlobData::GetCircularity1 ( ) const

真円度#1の取得

対象ブローブの真円度#1を取得します。
特徴量は下式にて定義されます。

\[circularity = 4\pi \frac{area}{perim^2} \]

但し、分母が0(周囲長が0)の時は circularity は0.0とします。

戻り値
真円度#1を返します。
例外
FVCL::CFveException処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode からエラーコードを取得できます。
エラーコード:
定数 内容
51 FVCL_ErrorCode::LICENSE_ERROR ライセンスがありません。
1 FVCL_ErrorCode::FAILED_TO_ALLOCATE メモリが不足しています。
11 FVCL_ErrorCode::INVALID_PARAMETER ブローブ番号が無効です。
12 FVCL_ErrorCode::INVALID_OBJECT 2値ブローブ解析結果ハンドルが無効です。
FIE:
fnFIE_measure_get_circularity1
FVCL::Blob::CFvBlobData::GetCircularity1 ( DOUBLE circularity) const

真円度#1の取得

対象ブローブの真円度#1を取得します。
特徴量は下式にて定義されます。

\[circularity = 4\pi \frac{area}{perim^2} \]

但し、分母が0(周囲長が0)の時は circularity は0.0とします。

引数
[out]circularity真円度
戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
51 FVCL_ErrorCode::LICENSE_ERROR ライセンスがありません。
1 FVCL_ErrorCode::FAILED_TO_ALLOCATE メモリが不足しています。
11 FVCL_ErrorCode::INVALID_PARAMETER ブローブ番号が無効です。
12 FVCL_ErrorCode::INVALID_OBJECT 2値ブローブ解析結果ハンドルが無効です。
FIE:
fnFIE_measure_get_circularity1
FVCL::Blob::CFvBlobData::GetCircularity2 ( ) const

真円度#2の取得

対象ブローブの真円度#2を取得します。
特徴量は下式にて定義されます。

\[circularity = \frac{area}{\pi * dpmax^2} \]

  • area : 面積
  • dpmax : 重心・境界間距離最大値

但し、分母が0(外周距離最大値dpmaxが0)の時は circularity は 0.0とします。

戻り値
真円度#2を返します。
例外
FVCL::CFveException処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode からエラーコードを取得できます。
エラーコード:
定数 内容
51 FVCL_ErrorCode::LICENSE_ERROR ライセンスがありません。
1 FVCL_ErrorCode::FAILED_TO_ALLOCATE メモリが不足しています。
11 FVCL_ErrorCode::INVALID_PARAMETER ブローブ番号が無効です。
12 FVCL_ErrorCode::INVALID_OBJECT 2値ブローブ解析結果ハンドルが無効です。
FIE:
fnFIE_measure_get_circularity2
FVCL::Blob::CFvBlobData::GetCircularity2 ( DOUBLE circularity) const

真円度#2の取得

対象ブローブの真円度#2を取得します。
特徴量は下式にて定義されます。

\[circularity = \frac{area}{\pi * dpmax^2} \]

  • area : 面積
  • dpmax : 重心・境界間距離最大値

但し、分母が0(外周距離最大値dpmaxが0)の時は circularity は 0.0とします。

引数
[out]circularity真円度
戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
51 FVCL_ErrorCode::LICENSE_ERROR ライセンスがありません。
1 FVCL_ErrorCode::FAILED_TO_ALLOCATE メモリが不足しています。
11 FVCL_ErrorCode::INVALID_PARAMETER ブローブ番号が無効です。
12 FVCL_ErrorCode::INVALID_OBJECT 2値ブローブ解析結果ハンドルが無効です。
FIE:
fnFIE_measure_get_circularity2
FVCL::Blob::CFvBlobData::GetCircularity3 ( ) const

真円度#3の取得

対象ブローブの真円度#3を取得します。
特徴量は下式にて定義されます。

\[circularity = 1-\frac{dpsigma}{dpave} \]

  • dpsigma : 重心・境界間距離標準偏差
  • dpave : 重心・境界間距離平均値

但し、分母が0(外周距離平均値dpaveが0)の時は circularity は 1.0 とします。

戻り値
真円度#3を返します。
例外
FVCL::CFveException処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode からエラーコードを取得できます。
エラーコード:
定数 内容
51 FVCL_ErrorCode::LICENSE_ERROR ライセンスがありません。
1 FVCL_ErrorCode::FAILED_TO_ALLOCATE メモリが不足しています。
11 FVCL_ErrorCode::INVALID_PARAMETER ブローブ番号が無効です。
12 FVCL_ErrorCode::INVALID_OBJECT 2値ブローブ解析結果ハンドルが無効です。
FIE:
fnFIE_measure_get_circularity3
FVCL::Blob::CFvBlobData::GetCircularity3 ( DOUBLE circularity) const

真円度#3の取得

対象ブローブの真円度#3を取得します。
特徴量は下式にて定義されます。

\[circularity = 1-\frac{dpsigma}{dpave} \]

  • dpsigma : 重心・境界間距離標準偏差
  • dpave : 重心・境界間距離平均値

但し、分母が0(外周距離平均値dpaveが0)の時は circularity は 1.0 とします。

引数
[out]circularity真円度
戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
51 FVCL_ErrorCode::LICENSE_ERROR ライセンスがありません。
1 FVCL_ErrorCode::FAILED_TO_ALLOCATE メモリが不足しています。
11 FVCL_ErrorCode::INVALID_PARAMETER ブローブ番号が無効です。
12 FVCL_ErrorCode::INVALID_OBJECT 2値ブローブ解析結果ハンドルが無効です。
FIE:
fnFIE_measure_get_circularity3
FVCL::Blob::CFvBlobData::operator= ( const CFvBlobData src)
virtual

代入オペレータ

同一クラスのオブジェクトの内容を複製して、自身に代入します。

引数
[in]src複製元
戻り値
代入後の自身のオブジェクトへの参照を返します。
FVCL::Blob::CFvBlobData::operator== ( const CFvBlobData src) const
virtual

比較オペレータ(==)

同一クラスのオブジェクトの内容と比較します。

引数
[in]src比較対象
戻り値
true一致
false不一致
FVCL::Blob::CFvBlobData::operator!= ( const CFvBlobData src) const
virtual

比較オペレータ(!=)

同一クラスのオブジェクトの内容と比較します。

引数
[in]src比較対象
戻り値
true不一致
false一致

Documentation copyright © 2007 FAST Corporation. [B-001864]
Generated on 2024年10月10日(木) 10時01分28秒 for WIL説明書(C++) by doxygen 1.8.11