WIL説明書(C++)  3.0.0
全メンバ一覧 | 公開型 | 公開メンバ関数 | 静的公開メンバ関数
FVCL::Data::CFvRegion クラス

リージョンオブジェクト [詳解]

詳解

リージョンオブジェクト

namespace FVCL::Data

リージョン情報を保有するクラスです。
リージョンとは、複数のランレングス(FVCL::Data::CFvRunLength)で構成された2次元の領域情報の事です。

必要条件:
ヘッダー: FVCLbasic.h
FIE:
F_OBJID_REGION
バージョン
FVCLbasic v1.1.0.0: 新規追加しました。
+ FVCL::Data::CFvRegion の継承関係図

公開型

enum  { DataID = 22 }
 

公開メンバ関数

 CFvRegion ()
 コンストラクタ [詳解]
 
 CFvRegion (FHANDLE region, bool attach)
 コンストラクタ [詳解]
 
 CFvRegion (const CFvRegion &src)
 コピーコンストラクタ [詳解]
 
 CFvRegion (const FVCL::Data::CFvCircle &circle)
 初期値指定コンストラクタ [詳解]
 
 CFvRegion (const FVCL::Data::CFvEllipse &ellipse)
 初期値指定コンストラクタ [詳解]
 
 CFvRegion (const FVCL::Data::CFvPolyline &polyline)
 初期値指定コンストラクタ [詳解]
 
 CFvRegion (const FVCL::Data::CFvRectangle &rect)
 初期値指定コンストラクタ [詳解]
 
 CFvRegion (const FVCL::Data::CFvImage &image)
 初期値指定コンストラクタ [詳解]
 
 CFvRegion (const FVCL::CFvMultiData< FVCL::Data::CFvRunLength > &runs)
 初期値指定コンストラクタ [詳解]
 
virtual ~CFvRegion ()
 デストラクタ [詳解]
 
virtual INT GetDataID () const
 データIDの取得 [詳解]
 
virtual bool GetPointer (INT id, void **val) const
 インスタンスのthisポインタの取得 [詳解]
 
virtual bool Load (LPCTSTR szFileName)
 ファイル読み込み [詳解]
 
virtual bool Save (LPCTSTR szFileName)
 ファイル保存 [詳解]
 
virtual bool Create (const FVCL::Data::CFvCircle &circle)
 リージョンの生成 [詳解]
 
virtual bool Create (const FVCL::Data::CFvEllipse &ellipse)
 リージョンの生成 [詳解]
 
virtual bool Create (const FVCL::Data::CFvPolyline &polyline)
 リージョンの生成 [詳解]
 
virtual bool Create (const FVCL::Data::CFvRectangle &rect)
 リージョンの生成 [詳解]
 
virtual bool Create (const FVCL::Data::CFvImage &image)
 リージョンの生成 [詳解]
 
virtual bool Create (const FVCL::CFvMultiData< FVCL::Data::CFvRunLength > &runs)
 リージョンの生成 [詳解]
 
virtual void Destroy ()
 リージョンオブジェクトの開放 [詳解]
 
virtual bool Attach (FHANDLE region)
 リージョンオブジェクトへのアタッチ [詳解]
 
virtual bool IsCreate () const
 リージョンの生成状態の確認 [詳解]
 
virtual void IsAttach (bool value)
 アタッチ属性の設定 [詳解]
 
virtual bool IsAttach () const
 アタッチ属性の取得 [詳解]
 
virtual void SetHandle (FHANDLE handle)
 リージョンオブジェクトの設定 [詳解]
 
virtual FHANDLE GetHandle () const
 リージョンオブジェクトの取得 [詳解]
 
bool Draw (FVCL::Data::CFvImage *image, DOUBLE density) const
 リージョンの描画 (処理ウィンドウの始点を原点とします。) [詳解]
 
bool Draw (FVCL::Data::CFvImage *image, DOUBLE density,::PNT_T offset) const
 リージョンの描画 (画像の左上を原点とします。) [詳解]
 
bool Draw (FVCL::Data::CFvImage *image, FVCL::tagRGB32 density,::PNT_T offset) const
 リージョンの描画 (画像の左上を原点とします。) [詳解]
 
bool Draw (FVCL::Data::CFvImage *image, const FVCL::CFvMultiData< DOUBLE > &densities,::PNT_T offset) const
 リージョンの描画 (画像の左上を原点とします。) [詳解]
 
bool Fill ()
 リージョンの穴の塗り潰し [詳解]
 
bool Contains (INT x, INT y) const
 指定位置のランレングス存在確認 [詳解]
 
bool SetPosition (const FVCL::Data::CFvPoint &position)
 リージョンの平行移動 [詳解]
 
FVCL::Data::CFvPoint GetPosition () const
 リージョンの X,Y 座標の最小位置の取得 [詳解]
 
INT GetWidth () const
 リージョンの幅の取得 [詳解]
 
INT GetHeight () const
 リージョンの高さの取得 [詳解]
 
UINT GetCount () const
 ラン数の取得 [詳解]
 
CFvRunLength GetRunLength (UINT index) const
 ランレングスの取得 [詳解]
 
bool GetRunLength (FVCL::CFvMultiData< FVCL::Data::CFvRunLength > *runs) const
 ランレングス配列の取得 [詳解]
 
virtual CFvRegionoperator= (const CFvRegion &src)
 代入オペレータ [詳解]
 
virtual bool operator== (const CFvRegion &src) const
 比較オペレータ(==) [詳解]
 
virtual bool operator!= (const CFvRegion &src) const
 比較オペレータ(!=) [詳解]
 
virtual CFvRegion operator& (const CFvRegion &src) const
 論理積オペレータ(AND) [詳解]
 
virtual CFvRegionoperator&= (const CFvRegion &src)
 論理積オペレータ(AND) [詳解]
 
virtual CFvRegion operator| (const CFvRegion &src) const
 論理和オペレータ(OR) [詳解]
 
virtual CFvRegionoperator|= (const CFvRegion &src)
 論理和オペレータ(OR) [詳解]
 
virtual CFvRegion operator^ (const CFvRegion &src) const
 排他的論理和オペレータ(XOR) [詳解]
 
virtual CFvRegionoperator^= (const CFvRegion &src)
 排他的論理和オペレータ(XOR) [詳解]
 
void SetConnection (INT value)
 連結性の設定 [詳解]
 
INT GetConnection () const
 連結性の取得 (使用不可) [詳解]
 
UINT GetArea () const
 面積の取得 [詳解]
 
INT GetXmin () const
 X座標最小値の取得 [詳解]
 
INT GetYmin () const
 Y座標最小値の取得 [詳解]
 
INT GetXmax () const
 X座標最大値の取得 [詳解]
 
INT GetYmax () const
 Y座標最大値の取得 [詳解]
 
INT GetXdiff () const
 外接矩形の横サイズの取得 [詳解]
 
INT GetYdiff () const
 外接矩形の縦サイズの取得 [詳解]
 
INT GetXminAtYmin () const
 Yの最小位置におけるXの最小値の取得 [詳解]
 
INT GetXmaxAtYmax () const
 Yの最大位置におけるXの最大値の取得 [詳解]
 
INT GetYminAtXmax () const
 Xの最大位置におけるYの最小値の取得 [詳解]
 
INT GetYmaxAtXmin () const
 Xの最小位置におけるYの最大値の取得 [詳解]
 
INT64 GetMoment1SumX () const
 1次モーメントの取得 (X方向) [詳解]
 
INT64 GetMoment1SumY () const
 1次モーメントの取得 (Y方向) [詳解]
 
UINT64 GetMoment2SumX () const
 2次モーメントの取得 (X方向) [詳解]
 
UINT64 GetMoment2SumY () const
 2次モーメントの取得 (Y方向) [詳解]
 
INT64 GetMoment2SumXY () const
 2次モーメントの取得 (XY方向) [詳解]
 
DOUBLE GetCentralMoment2MG20 () const
 重心2次モーメントの取得 (X方向) [詳解]
 
DOUBLE GetCentralMoment2MG02 () const
 重心2次モーメントの取得 (Y方向) [詳解]
 
DOUBLE GetCentralMoment2MG11 () const
 重心2次モーメントの取得 (XY方向) [詳解]
 
DOUBLE GetMoment3M30 () const
 3次モーメントの取得 (M30) [詳解]
 
DOUBLE GetMoment3M03 () const
 3次モーメントの取得 (M03) [詳解]
 
DOUBLE GetMoment3M21 () const
 3次モーメントの取得 (M21) [詳解]
 
DOUBLE GetMoment3M12 () const
 3次モーメントの取得 (M12) [詳解]
 
DOUBLE GetCentralMoment3MG30 () const
 重心3次モーメントの取得 (MG30) [詳解]
 
DOUBLE GetCentralMoment3MG03 () const
 重心3次モーメントの取得 (MG03) [詳解]
 
DOUBLE GetCentralMoment3MG21 () const
 重心3次モーメントの取得 (MG21) [詳解]
 
DOUBLE GetCentralMoment3MG12 () const
 重心3次モーメントの取得 (MG12) [詳解]
 
DOUBLE GetMoment (INT xn, INT yn) const
 N次モーメントの取得 [詳解]
 
DOUBLE GetCentralMoment (INT xn, INT yn) const
 重心N次モーメントの取得 [詳解]
 
FVCL::Data::CFvPoint GetCenter () const
 重心の取得 [詳解]
 
FVCL::Data::CFvEllipse GetEquivalentEllipse () const
 等価楕円の取得 [詳解]
 
FVCL::Data::CFvCircle GetEquivalentDisk () const
 面積等価円の取得 [詳解]
 
FVCL::Data::CFvCircle GetEquivalentCircle () const
 周囲長等価円の取得 [詳解]
 
FVCL::Data::CFvRectangle GetRect1 () const
 外接矩形の取得 (傾きなし) [詳解]
 
UINT GetRect1Area () const
 外接矩形面積の取得 [詳解]
 
DOUBLE GetRect1Lratio () const
 外接矩形縦横比の取得 [詳解]
 
DOUBLE GetRect1Sratio () const
 外接矩形面積比の取得 [詳解]
 
FVCL::Data::CFvRectangle GetRect2 () const
 外接長方形の取得 (傾きあり) [詳解]
 
FVCL::CFvArray< FVCL::Data::CFvPointGetRect2Pos () const
 外接長方形の頂点座標の取得 [詳解]
 
void GetRect2Pos (FVCL::CFvMultiData< FVCL::Data::CFvPoint > *points) const
 外接長方形の頂点座標の取得 [詳解]
 
DOUBLE GetRect2Lsize () const
 外接長方形横長の取得 [詳解]
 
DOUBLE GetRect2Wsize () const
 外接長方形縦長の取得 [詳解]
 
DOUBLE GetRect2Area () const
 外接長方形面積の取得 [詳解]
 
DOUBLE GetRect2Lratio () const
 外接長方形縦横比の取得 [詳解]
 
DOUBLE GetRect2Sratio () const
 外接長方形面積比の取得 [詳解]
 
DOUBLE GetFeretDiameterMax () const
 最大フェレ径の取得 [詳解]
 
DOUBLE GetFeretDiameterMaxTheta () const
 最大フェレ径の角度の取得 [詳解]
 
DOUBLE GetFeretDiameterMin () const
 最小フェレ径の取得 [詳解]
 
DOUBLE GetFeretDiameterMinTheta () const
 最小フェレ径の角度の取得 [詳解]
 
DOUBLE GetFeretDiameter (DOUBLE theta, INT mode) const
 フェレ径の取得 [詳解]
 
DOUBLE GetPerimeter () const
 周囲長の取得 [詳解]
 
FVCL::CFvArray< FVCL::Data::CFvPointGetConvex2d () const
 凸包の取得 [詳解]
 
void GetConvex2d (FVCL::CFvMultiData< FVCL::Data::CFvPoint > *points) const
 凸包の取得 [詳解]
 
void GetConvex2d (FVCL::CFvBuffer< PNT_T > *points) const
 凸包の取得 [詳解]
 
DOUBLE GetConvexArea () const
 凸包面積の取得 [詳解]
 
DOUBLE GetConvexPerim () const
 凸包周囲長の取得 [詳解]
 
DOUBLE GetConvexAreaRatio () const
 凸包面積比の取得 [詳解]
 
DOUBLE GetConvexPerimRatio () const
 凸包周囲長比の取得 [詳解]
 
FVCL::Data::CFvCircle GetCircmCircle () const
 最小外接円の取得 [詳解]
 
FVCL::CFvArray< FVCL::Data::CFvPointGetBoundary () const
 周囲座標の取得 (External) [詳解]
 
void GetBoundary (FVCL::CFvMultiData< FVCL::Data::CFvPoint > *points) const
 周囲座標の取得 (External) [詳解]
 
void GetBoundary (FVCL::CFvBuffer< PNT_T > *points, bool contain_stopper=true) const
 周囲座標の取得 (External) [詳解]
 
void GetBoundaryEx (FVCL::CFvBuffer< PNT_T > *points_ext, FVCL::CFvBuffer< PNT_T > *points_int, bool contain_stopper=true) const
 周囲座標の取得 [詳解]
 
FVCL::CFvArray< FVCL::Data::CFvPointGetBoundaryInternal () const
 周囲座標の取得 (Internal) [詳解]
 
void GetBoundaryInternal (FVCL::CFvMultiData< FVCL::Data::CFvPoint > *points) const
 周囲座標の取得 (Internal) [詳解]
 
DOUBLE GetDistanceToBoundaryMax () const
 外周距離の取得 (最大値) [詳解]
 
DOUBLE GetDistanceToBoundaryMin () const
 外周距離の取得 (最小値) [詳解]
 
DOUBLE GetDistanceToBoundaryAve () const
 外周距離の取得 (平均値) [詳解]
 
DOUBLE GetDistanceToBoundarySigma () const
 外周距離の取得 (標準偏差) [詳解]
 
DOUBLE GetCircularity1 () const
 真円度#1の取得 [詳解]
 
DOUBLE GetCircularity2 () const
 真円度#2の取得 [詳解]
 
DOUBLE GetCircularity3 () const
 真円度#3の取得 [詳解]
 
- 基底クラス FVCL::CFvDataObject に属する継承公開メンバ関数
 CFvDataObject ()
 標準のコンストラクタ [詳解]
 
virtual ~CFvDataObject ()
 デストラクタ [詳解]
 
- 基底クラス 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
 比較オペレータ (!=) [詳解]
 

静的公開メンバ関数

static INT CheckValidity (const FVCL::Data::CFvImage &image)
 画像の有効性検査 [詳解]
 
- 基底クラス 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 

リージョンクラスのデータID

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

構築子と解体子

FVCL::Data::CFvRegion::CFvRegion ( )

コンストラクタ

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

FVCL::Data::CFvRegion::CFvRegion ( FHANDLE  region,
bool  attach 
)

コンストラクタ

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

引数
[in]regionリージョンオブジェクトハンドル
[in]attachアタッチ指定
  • true : アタッチします。引数に指定した region は、ユーザー側で管理してください。
  • false : アタッチしません。引数に指定した region は、このクラスが破棄される際に解放されます。

FVCL::Data::CFvRegion::CFvRegion ( const CFvRegion src)

コピーコンストラクタ

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

引数
[in]src複製元
FVCL::Data::CFvRegion::CFvRegion ( const FVCL::Data::CFvCircle circle)

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

円形のリージョンを作成してオブジェクトを構築します。

引数
[in]circle
例外
FVCL::CFveBadAllocExceptionメモリ不足です。
FVCL::CFveBadParamExceptionパラメータが不正です。
参照
CFvRegion::Create( const FVCL::Data::CFvCircle& circle );
FVCL::Data::CFvRegion::CFvRegion ( const FVCL::Data::CFvEllipse ellipse)

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

楕円形のリージョンを作成してオブジェクトを構築します。

引数
[in]ellipse楕円
例外
FVCL::CFveBadAllocExceptionメモリ不足です。
FVCL::CFveBadParamExceptionパラメータが不正です。
参照
CFvRegion::Create( const FVCL::Data::CFvEllipse& ellipse );
FVCL::Data::CFvRegion::CFvRegion ( const FVCL::Data::CFvPolyline polyline)

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

多角形のリージョンを作成してオブジェクトを構築します。

引数
[in]polyline多角形
例外
FVCL::CFveBadAllocExceptionメモリ不足です。
FVCL::CFveBadParamExceptionパラメータが不正です。
参照
CFvRegion::Create( const FVCL::Data::CFvPolyline& polyline );
FVCL::Data::CFvRegion::CFvRegion ( const FVCL::Data::CFvRectangle rect)

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

矩形のリージョンを作成してオブジェクトを構築します。

引数
[in]rect矩形
例外
FVCL::CFveBadAllocExceptionメモリ不足です。
FVCL::CFveBadParamExceptionパラメータが不正です。
参照
CFvRegion::Create( const FVCL::Data::CFvRectangle& rect );
FVCL::Data::CFvRegion::CFvRegion ( const FVCL::Data::CFvImage image)

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

画像オブジェクトからリージョンを作成してオブジェクトを構築します。
指定する画像は FVCL::ImageType::BIN, チャネル数が 1 でなければなりません。

引数
[in]image画像オブジェクト
例外
FVCL::CFveBadAllocExceptionメモリ不足です。
FVCL::CFveBadParamExceptionパラメータが不正です。
参照
CFvRegion::Create( const FVCL::Data::CFvImage& image );
FVCL::Data::CFvRegion::CFvRegion ( const FVCL::CFvMultiData< FVCL::Data::CFvRunLength > &  runs)

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

ランレングス配列からリージョンを作成してオブジェクトを構築します。

引数
[in]runsランレングス配列
例外
FVCL::CFveBadAllocExceptionメモリ不足です。
FVCL::CFveBadParamExceptionパラメータが不正です。
参照
CFvRegion::Create( const FVCL::CFvMultiData<FVCL::Data::CFvRunLength>& runs );
FVCL::Data::CFvRegion::~CFvRegion ( )
virtual

デストラクタ

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

関数詳解

FVCL::Data::CFvRegion::GetDataID ( ) const
virtual

データIDの取得

データIDを取得します。

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

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

FVCL::Data::CFvRegion::GetPointer ( INT  id,
void **  val 
) const
virtual

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

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

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

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

FVCL::Data::CFvRegion::Load ( LPCTSTR  szFileName)
virtual

ファイル読み込み

指定されたファイルからデータを復元します。
通常は Save メソッドで保存したファイルを指定してください。 それ以外で、何らかの画像ファイルが存在するとき、できる限り復元しようとしますが内容が正常とは限りません。

引数
[in]szFileNameファイル名称
戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
51 FVCL_ErrorCode::LICENSE_ERROR ライセンスがありません。
1 FVCL_ErrorCode::FAILED_TO_ALLOCATE メモリの確保に失敗しました。メモリが不足しています。
11 FVCL_ErrorCode::INVALID_PARAMETER パラメータが無効です。ファイル名に null や空白は指定できません。
21 FVCL_ErrorCode::NOT_SUPPORTED 指定されたファイル形式はサポートされていません。
23 FVCL_ErrorCode::NOT_ALLOCATED メモリが確保されていません。

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

FVCL::Data::CFvRegion::Save ( LPCTSTR  szFileName)
virtual

ファイル保存

指定されたファイルにデータを保存します。
リージョンを2値画像として保存し、その他のプロパティをテキストファイル(*.conf)に保存します。
このメソッドは、内部で FVCL::File::SaveImageFile を実行しています。 詳しくは、 FVCL::File::SaveImageFile の説明をご参照ください。

引数
[in]szFileNameファイル名称
※注) カレントであってもパスを付加してください。
戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
51 FVCL_ErrorCode::LICENSE_ERROR ライセンスがありません。
1 FVCL_ErrorCode::FAILED_TO_ALLOCATE メモリの確保に失敗しました。メモリが不足しています。
11 FVCL_ErrorCode::INVALID_PARAMETER パラメータが無効です。ファイル名に null や空白は指定できません。
21 FVCL_ErrorCode::NOT_SUPPORTED 指定されたファイル形式はサポートされていません。
23 FVCL_ErrorCode::NOT_ALLOCATED メモリが確保されていません。

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

FVCL::Data::CFvRegion::Create ( const FVCL::Data::CFvCircle circle)
virtual

リージョンの生成

円形のリージョンを生成します。

引数
[in]circle
戻り値
true正常
false異常
GetErrorCode メソッドでエラーコードを取得できます。
エラーコード:
定数 内容
1 FVCL_ErrorCode::FAILED_TO_ALLOCATE メモリ不足です。
11 FVCL_ErrorCode::INVALID_PARAMETER パラメータが不正です。
FIE:
fnFIE_create_region_circle
解説:
下図に示す円は、中心が(4.0, 4.0)、半径が 2.0 の円リージョンを作成した場合の例です。 尚、与えられたパラメータは四捨五入されて処理されます。 その為、中心が(3.5, 3.5)、半径が1.5の円と、中心が(4.4, 4.4)、半径が2.4の円は、下図と同じ円リージョンとなります。 また、半径が 0 の円は、中心座標1画素のみの点として描画されます。
draw_circle.png
座標の制限:
図形の座標は、-16777216.0~16777215.0 の範囲に限定されます。 範囲を超える座標が指定された場合は、パラメータエラーを返します。
FVCL::Data::CFvRegion::Create ( const FVCL::Data::CFvEllipse ellipse)
virtual

リージョンの生成

楕円形のリージョンを生成します。

引数
[in]ellipse楕円
戻り値
true正常
false異常
GetErrorCode メソッドでエラーコードを取得できます。
エラーコード:
定数 内容
1 FVCL_ErrorCode::FAILED_TO_ALLOCATE メモリ不足です。
11 FVCL_ErrorCode::INVALID_PARAMETER パラメータが不正です。
FIE:
fnFIE_create_region_ellipse
解説:
下図に示す楕円は、中心が(5.0, 4.0)、長軸半径が3.0、短軸半径が2.0の楕円リージョンを作成した場合の例です。 また、長軸半径と短軸半径をともに0とした場合、1点のリージョンが作成されます。
draw_ellipse.png
座標の制限:
図形の座標は、-16777216.0~16777215.0 の範囲に限定されます。 範囲を超える座標が指定された場合は、パラメータエラーを返します。
FVCL::Data::CFvRegion::Create ( const FVCL::Data::CFvPolyline polyline)
virtual

リージョンの生成

多角形のリージョンを生成します。

引数
[in]polyline多角形
戻り値
true正常
false異常
GetErrorCode メソッドでエラーコードを取得できます。
エラーコード:
定数 内容
1 FVCL_ErrorCode::FAILED_TO_ALLOCATE メモリ不足です。
11 FVCL_ErrorCode::INVALID_PARAMETER パラメータが不正です。
FIE:
fnFIE_create_region_polygon
解説:
与えられた頂点を、Pn = { p(0),p(1),...,p(n-2),p(n-1)} とし、これらの頂点により作成される多角形のリージョンを作成します。 p(0)と p(n-1)は、接続しているとして処理をされます。(FVCL::Data::CFvPolyline::option メンバの値は無視します) 但し、頂点数が1の場合は点、2の場合は線状のリージョンとなります。
座標の制限:
図形の座標は、-16777216.0~16777215.0 の範囲に限定されます。 範囲を超える座標が指定された場合は、パラメータエラーを返します。
FVCL::Data::CFvRegion::Create ( const FVCL::Data::CFvRectangle rect)
virtual

リージョンの生成

矩形のリージョンを生成します。

引数
[in]rect矩形
戻り値
true正常
false異常
GetErrorCode メソッドでエラーコードを取得できます。
エラーコード:
定数 内容
1 FVCL_ErrorCode::FAILED_TO_ALLOCATE メモリ不足です。
11 FVCL_ErrorCode::INVALID_PARAMETER パラメータが不正です。
FIE:
fnFIE_create_region_polygon
解説:
矩形から4頂点を取得して多角形として描画します。 傾きや回転中心が考慮されます。
座標の制限:
図形の座標は、-16777216.0~16777215.0 の範囲に限定されます。 範囲を超える座標が指定された場合は、パラメータエラーを返します。
参照
CFvRegion::Create( const FVCL::Data::CFvPolyline& polyline );
FVCL::Data::CFvRegion::Create ( const FVCL::Data::CFvImage image)
virtual

リージョンの生成

画像オブジェクトからリージョンを生成します。

引数
[in]image画像オブジェクト
戻り値
true正常
false異常
GetErrorCode メソッドでエラーコードを取得できます。
エラーコード:
定数 内容
1 FVCL_ErrorCode::FAILED_TO_ALLOCATE メモリ不足です。
11 FVCL_ErrorCode::INVALID_PARAMETER パラメータが不正です。
FIE:
fnFIE_region_encode
解説:
指定する画像は FVCL::ImageType::BIN, チャネル数が 1 でなければなりません。
2値画像の濃度値が 1 の部分がリージョンになります。 濃度値が 1 の部分が1つもない画像で生成した場合は、ラン数が 0 個のリージョンが生成されます。 また、処理ウィンドウ(FVCL::Data::CFvImage::SetWindow)で指定された範囲が抽出の対象になります。
FVCL::Data::CFvRegion::Create ( const FVCL::CFvMultiData< FVCL::Data::CFvRunLength > &  runs)
virtual

リージョンの生成

ランレングス配列からリージョンを生成します。

引数
[in]runsランレングス配列
戻り値
true正常
false異常
GetErrorCode メソッドでエラーコードを取得できます。
エラーコード:
定数 内容
1 FVCL_ErrorCode::FAILED_TO_ALLOCATE メモリ不足です。
11 FVCL_ErrorCode::INVALID_PARAMETER パラメータが不正です。
FIE:
fnFIE_create_region_runlength
FVCL::Data::CFvRegion::Destroy ( )
virtual

リージョンオブジェクトの開放

このクラスが保有するリージョンオブジェクトを解放します。
インスタンスが破棄される際は、デストラクタで自動的に開放されますので、 通常は、このメソッドを呼び出す必要はありません。

FIE:
fnFIE_free_object
FVCL::Data::CFvRegion::Attach ( FHANDLE  region)
virtual

リージョンオブジェクトへのアタッチ

引数に指定されたリージョンオブジェクトを設定します。 既にリージョンオブジェクトを保有していた場合は、この関数内で事前に開放(またはデタッチ)されます。

引数
[in]regionアタッチするリージョンの FIE ハンドル
解説:
FIE ハンドルとは FIE ライブラリで使用されるデータ構造のことです。 FIE ハンドルはいくつかの種類がありますが、 ここでは F_OBJID_REGION のことを意味します。 詳しくは FIE ライブラリ説明書をご参照ください。
参照
CFvRegion::IsAttach() const
CFvRegion::SetHandle( FHANDLE handle )
FVCL::Data::CFvRegion::IsCreate ( ) const
virtual

リージョンの生成状態の確認

このリージョンオブジェクトが生成されているか否かを確認します。

戻り値
true生成済み
false未生成
FVCL::Data::CFvRegion::IsAttach ( bool  value)
virtual

アタッチ属性の設定

アタッチ属性を設定します。

引数
[in]valueアタッチ属性
  • true : アタッチします。アタッチ対象の領域はユーザー側で管理する必要があります。
  • false : アタッチしません。このクラスの内部に管理している領域はクラスが破棄される際に解放されます。

参照
CFvRegion::Attach( FHANDLE region )
CFvRegion::SetHandle( FHANDLE handle )
FVCL::Data::CFvRegion::IsAttach ( ) const
virtual

アタッチ属性の取得

現在のアタッチ属性を取得します。

戻り値
trueアタッチしています。アタッチ対象の領域はユーザー側で管理する必要があります。
falseアタッチしていません。このクラスの内部に管理している領域はクラスが破棄される際に解放されます。
参照
CFvRegion::Attach( FHANDLE region )
CFvRegion::SetHandle( FHANDLE handle )
FVCL::Data::CFvRegion::SetHandle ( FHANDLE  handle)
virtual

リージョンオブジェクトの設定

引数に指定されたリージョンオブジェクトを設定します。 既にリージョンオブジェクトを保有していた場合は、この関数内で事前に開放(またはデタッチ)されます。

引数
[in]handle設定するリージョンの FIE ハンドル
FIE:
F_OBJID_REGION
解説:
FIE ハンドルとは FIE ライブラリで使用されるデータ構造のことです。 FIE ハンドルはいくつかの種類がありますが、 ここでは F_OBJID_REGION のことを意味します。 詳しくは FIE ライブラリ説明書をご参照ください。
参照
CFvRegion::Attach( FHANDLE region )
FVCL::Data::CFvRegion::GetHandle ( ) const
virtual

リージョンオブジェクトの取得

このクラスが保有するリージョンオブジェクトの内部ハンドルを取得します。

戻り値
リージョンオブジェクトの内部ハンドルを返します。
FIE:
F_OBJID_REGION
解説:
FIE ハンドルとは FIE ライブラリで使用されるデータ構造のことです。 FIE ハンドルはいくつかの種類がありますが、 ここでは F_OBJID_REGION のことを意味します。 詳しくは FIE ライブラリ説明書をご参照ください。
FVCL::Data::CFvRegion::CheckValidity ( const FVCL::Data::CFvImage image)
static

画像の有効性検査

引数に指定された画像オブジェクトに対して、このリージョンを描画可能か否かを検査します。

引数
[in]image検査対象の画像オブジェクト
戻り値
FVCL_ErrorCode::_SUCCESS有効
FVCL_ErrorCode::INVALID_IMAGETYPE画像種別が不正です。
FVCL_ErrorCode::INVALID_CHANNEL画像チャネル数が不正です。
解説:
対応している画像種別は、以下の通りです。
※ RGB32 の場合は 1 チャネルのみ対応します。
  • FVCL::ImageType::BIN
  • FVCL::ImageType::UC8
  • FVCL::ImageType::S16
  • FVCL::ImageType::US16
  • FVCL::ImageType::D64
  • FVCL::ImageType::RGB32 (x1ch)

参照
CFvRegion::Draw( FVCL::Data::CFvImage* image, DOUBLE density ) const
FVCL::Data::CFvRegion::Draw ( FVCL::Data::CFvImage image,
DOUBLE  density 
) const

リージョンの描画 (処理ウィンドウの始点を原点とします。)

このリージョンを画像に描画します。
描画可能な画像については、 CheckValidity をご参照ください。

引数
[in]image描画先の画像オブジェクト [BIN,UC8,S16,US16,D64 / RGB32x1ch]
[in]density描画色
戻り値
true正常
false異常
GetErrorCode メソッドでエラーコードを取得できます。
エラーコード:
定数 内容
11 FVCL_ErrorCode::INVALID_PARAMETER 引数が不正です。NULL は許容されません。
16 FVCL_ErrorCode::INVALID_IMAGETYPE 画像種別が不正です。
18 FVCL_ErrorCode::INVALID_CHANNEL 画像チャネル数が不正です。
12 FVCL_ErrorCode::INVALID_OBJECT リージョンが未生成です。または画像オブジェクトが不正です。
描画座標の原点について
この関数は過去のバージョンとの互換性の為に残しており、他の Draw 関数と仕様が異なります。
この関数が処理ウィンドウの始点を原点として描画するのに対し、他の Draw 関数は画像の左上を原点として描画します。 2値ブローブ解析の結果からリージョンを取得した場合は、既定では画像の左上を原点としていますので他の Draw 関数を使用することを推奨します。
処理ウィンドウ外の扱い
処理ウィンドウ(FVCL::Data::CFvImage::SetWindow)で指定される座標でクリッピング処理してから描画します。 処理ウィンドウの範囲外には描画されません。
FIE:
fnFIE_draw_line_seg
参照
CFvRegion::CheckValidity( const FVCL::Data::CFvImage& image )
FVCL::Data::CFvRegion::Draw ( FVCL::Data::CFvImage image,
DOUBLE  density,
::PNT_T  offset 
) const

リージョンの描画 (画像の左上を原点とします。)

このリージョンを画像に描画します。
描画可能な画像については、 CheckValidity をご参照ください。

引数
[in]image描画先の画像オブジェクト [BIN,UC8,S16,US16,D64 / RGB32x1ch]
[in]density描画色
[in]offset描画位置のオフセット
リージョンの GetPosition() にこの値を加算した位置に描画します。
x,y=0,0 に描画する場合は -1 * GetPosition() を指定してください。
戻り値
true正常
false異常
GetErrorCode メソッドでエラーコードを取得できます。
エラーコード:
定数 内容
11 FVCL_ErrorCode::INVALID_PARAMETER 引数が不正です。NULL は許容されません。
16 FVCL_ErrorCode::INVALID_IMAGETYPE 画像種別が不正です。
18 FVCL_ErrorCode::INVALID_CHANNEL 画像チャネル数が不正です。
12 FVCL_ErrorCode::INVALID_OBJECT リージョンが未生成です。または画像オブジェクトが不正です。
描画座標の原点について
この関数は画像の左上を原点としてz描画します。
処理ウィンドウの左上を原点とする場合は offset に処理ウィンドウの左上を指定してください。
処理ウィンドウ外の扱い
処理ウィンドウ(FVCL::Data::CFvImage::SetWindow)で指定される座標でクリッピング処理してから描画します。 処理ウィンドウの範囲外には描画されません。
FIE:
fnFIE_draw_line_seg
参照
CFvRegion::CheckValidity( const FVCL::Data::CFvImage& image )
FVCL::Data::CFvRegion::Draw ( FVCL::Data::CFvImage image,
FVCL::tagRGB32  density,
::PNT_T  offset 
) const

リージョンの描画 (画像の左上を原点とします。)

このリージョンを画像に描画します。
描画可能な画像については、 CheckValidity をご参照ください。

引数
[in]image描画先の画像オブジェクト [BIN,UC8,S16,US16,D64 / RGB32x1ch]
[in]density描画色
R,G,B のみ使用します。
画像のチャネル数が 3 未満の時は R,G,B を濃淡化して描画します。
画像のチャネル数が 3 を超える場合は 先頭の 3 チャネルに R,G,B を適用し、以降は 0 になります。
[in]offset描画位置のオフセット
リージョンの GetPosition() にこの値を加算した位置に描画します。
x,y=0,0 に描画する場合は -1 * GetPosition() を指定してください。
戻り値
true正常
false異常
GetErrorCode メソッドでエラーコードを取得できます。
エラーコード:
定数 内容
11 FVCL_ErrorCode::INVALID_PARAMETER 引数が不正です。NULL は許容されません。
16 FVCL_ErrorCode::INVALID_IMAGETYPE 画像種別が不正です。
18 FVCL_ErrorCode::INVALID_CHANNEL 画像チャネル数が不正です。
12 FVCL_ErrorCode::INVALID_OBJECT リージョンが未生成です。または画像オブジェクトが不正です。
描画座標の原点について
この関数は画像の左上を原点として描画します。
処理ウィンドウの左上を原点とする場合は offset に処理ウィンドウの左上を指定してください。
処理ウィンドウ外の扱い
処理ウィンドウ(FVCL::Data::CFvImage::SetWindow)で指定される座標でクリッピング処理してから描画します。 処理ウィンドウの範囲外には描画されません。
FIE:
fnFIE_draw_line_seg
参照
CFvRegion::CheckValidity( const FVCL::Data::CFvImage& image )
FVCL::Data::CFvRegion::Draw ( FVCL::Data::CFvImage image,
const FVCL::CFvMultiData< DOUBLE > &  densities,
::PNT_T  offset 
) const

リージョンの描画 (画像の左上を原点とします。)

このリージョンを画像に描画します。
描画可能な画像については、 CheckValidity をご参照ください。

引数
[in]image描画先の画像オブジェクト [BIN,UC8,S16,US16,D64 / RGB32x1ch]
[in]densities描画色
配列指標(0~)と画像のチャネルが対応します。
要素数が画像のチャネル数を下回る場合はエラーになります。
画像種別が RGB32 の時は要素数が 3 必要です。
[in]offset描画位置のオフセット
リージョンの GetPosition() にこの値を加算した位置に描画します。
x,y=0,0 に描画する場合は -1 * GetPosition() を指定してください。
戻り値
true正常
false異常
GetErrorCode メソッドでエラーコードを取得できます。
エラーコード:
定数 内容
11 FVCL_ErrorCode::INVALID_PARAMETER 引数が不正です。NULL は許容されません。
16 FVCL_ErrorCode::INVALID_IMAGETYPE 画像種別が不正です。
18 FVCL_ErrorCode::INVALID_CHANNEL 画像チャネル数が不正です。
12 FVCL_ErrorCode::INVALID_OBJECT リージョンが未生成です。または画像オブジェクトが不正です。
描画座標の原点について
この関数は画像の左上を原点として描画します。
処理ウィンドウの左上を原点とする場合は offset に処理ウィンドウの左上を指定してください。
処理ウィンドウ外の扱い
処理ウィンドウ(FVCL::Data::CFvImage::SetWindow)で指定される座標でクリッピング処理してから描画します。 処理ウィンドウの範囲外には描画されません。
FIE:
fnFIE_draw_line_seg
参照
CFvRegion::CheckValidity( const FVCL::Data::CFvImage& image )
FVCL::Data::CFvRegion::Fill ( )

リージョンの穴の塗り潰し

このリージョンの穴を塗り潰します。

戻り値
true正常
false異常
GetErrorCode メソッドでエラーコードを取得できます。
エラーコード:
定数 内容
1 FVCL_ErrorCode::FAILED_TO_ALLOCATE メモリ不足の為、処理に失敗しました。
11 FVCL_ErrorCode::INVALID_PARAMETER リージョンの横サイズが 65535 以上有る為、異常終了しました。
12 FVCL_ErrorCode::INVALID_OBJECT リージョンが未生成です。
FIE:
fnFIE_region_fill
FVCL::Data::CFvRegion::Contains ( INT  x,
INT  y 
) const

指定位置のランレングス存在確認

指定した座標にランレングスが存在するか否かを確認します。

引数
[in]xX座標
[in]yY座標
戻り値
true存在します。
false存在しません。
リージョンが無効な場合も false を返します。
FVCL::Data::CFvRegion::SetPosition ( const FVCL::Data::CFvPoint position)

リージョンの平行移動

リージョン全体を平行移動します。
引数 position には、リージョンの X,Y 座標の最小位置の移動先を指定してください。
座標はピクセル単位です。小数点以下は四捨五入されます。

指定する座標は、32 bit 符号付き整数の範囲内でなければなりません。

  • X座標: -2,147,483,648 ~ 2,147,483,647 - (GetWidth() -1)
  • Y座標: -2,147,483,648 ~ 2,147,483,647 - (GetHeight() -1)


引数
[in]position移動先
戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
11 FVCL_ErrorCode::INVALID_PARAMETER 移動後の座標が 32bit 整数の範囲を超えています。または、リージョンの内部ハンドルが不正です。
12 FVCL_ErrorCode::INVALID_OBJECT リージョンが未生成です。
1 FVCL_ErrorCode::FAILED_TO_ALLOCATE メモリ不足により異常終了しました。
29 FVCL_ErrorCode::NOT_CALCULABLE 計算不可能です。
FIE:
fnFIE_region_geotrans_shift
参照
CFvRegion::GetPosition() const
CFvRegion::GetWidth() const
CFvRegion::GetHeight() const
FVCL::Data::CFvRegion::GetPosition ( ) const

リージョンの X,Y 座標の最小位置の取得

リージョンの X,Y 座標の最小位置(外接矩形の左上座標)を取得します。

戻り値
X,Y 座標を FVCL::Data::CFvPoint に格納して返します。座標はピクセル単位です。
例外
FVCL::CFveBadParamExceptionパラメータが不正です。
エラーコード:
発行された例外オブジェクトの GetErrorCode メソッドから下記のエラーコードを取得できます。
定数 内容
11 FVCL_ErrorCode::INVALID_PARAMETER リージョンの内部ハンドルが不正です。
12 FVCL_ErrorCode::INVALID_OBJECT リージョンが未生成です。
29 FVCL_ErrorCode::NOT_CALCULABLE 計算不可能です。
FIE:
fnFIE_region_get_xyrange
参照
CFvRegion::SetPosition( const FVCL::Data::CFvPoint& position )
CFvRegion::GetWidth() const
CFvRegion::GetHeight() const
FVCL::Data::CFvRegion::GetWidth ( ) const

リージョンの幅の取得

リージョンの幅(外接矩形の幅)を取得します。

戻り値
幅を整数で返します。座標はピクセル単位です。 リージョンの内部ハンドルが無効な場合、ラン数が 0 の場合は 0 を返します。
FIE:
fnFIE_region_get_xyrange
参照
CFvRegion::SetPosition( const FVCL::Data::CFvPoint& position )
CFvRegion::GetPosition() const
FVCL::Data::CFvRegion::GetHeight ( ) const

リージョンの高さの取得

リージョンの高さ(外接矩形の高さ)を取得します。

戻り値
高さを整数で返します。座標はピクセル単位です。 リージョンの内部ハンドルが無効な場合、ラン数が 0 の場合は 0 を返します。
FIE:
fnFIE_region_get_xyrange
参照
CFvRegion::SetPosition( const FVCL::Data::CFvPoint& position )
CFvRegion::GetPosition() const
FVCL::Data::CFvRegion::GetCount ( ) const

ラン数の取得

このリージョンを構成するランレングスの個数を取得します。

戻り値
ランレングスの個数を返します。 リージョンの内部ハンドルが無効な場合は 0 を返します。
FIE:
fnFIE_region_get_runlength
参照
CFvRegion::GetRunLength( UINT index ) const;
FVCL::Data::CFvRegion::GetRunLength ( UINT  index) const

ランレングスの取得

このリージョンを構成するランレングスの1つを取得します。

引数の index は、0~(GetCount() -1) の範囲で指定してください。 指標が間違っている場合は、例外が発行されます。

引数
[in]indexランレングス指標 (0~)
戻り値
ランレングスクラスのインスタンスを返します。
例外
FVCL::CFveBadAccessException指標が不正です。
FVCL::CFveBadParamExceptionリージョンの内部ハンドルが不正です。
エラーコード:
発行された例外オブジェクトの GetErrorCode メソッドでエラーコードを取得できます。
定数 内容
11 FVCL_ErrorCode::INVALID_PARAMETER 指標が不正です。
12 FVCL_ErrorCode::INVALID_OBJECT リージョンの内部ハンドルが不正です。
FIE:
fnFIE_region_get_runlength
参照
CFvRegion::GetCount() const;
CFvRegion::GetRunLength( FVCL::CFvMultiData<FVCL::Data::CFvRunLength>* runs ) const
FVCL::Data::CFvRegion::GetRunLength ( FVCL::CFvMultiData< FVCL::Data::CFvRunLength > *  runs) const

ランレングス配列の取得

このリージョンを構成するランレングスを配列に取得します。

引数
[in]runsランレングスを格納する配列オブジェクト
戻り値
true正常
false異常
GetErrorCode メソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
11 FVCL_ErrorCode::INVALID_PARAMETER 引数が NULL または、リージョンの内部ハンドルが不正です。
1 FVCL_ErrorCode::FAILED_TO_ALLOCATE メモリ不足により異常終了しました。
12 FVCL_ErrorCode::INVALID_OBJECT リージョンの内部ハンドルが不正です。
FIE:
fnFIE_region_get_runlength
参照
CFvRegion::GetRunLength( UINT index ) const
FVCL::Data::CFvRegion::operator= ( const CFvRegion src)
virtual

代入オペレータ

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

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

比較オペレータ(==)

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

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

比較オペレータ(!=)

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

引数
[in]src比較対象
戻り値
true不一致
false一致
FVCL::Data::CFvRegion::operator& ( const CFvRegion src) const
virtual

論理積オペレータ(AND)

自身と引数に指定されたオブジェクトの論理積を行い、結果を返します。
自身の内容は更新されません。

引数
[in]src右辺値
戻り値
演算結果を返します。
FVCL::Data::CFvRegion::operator&= ( const CFvRegion src)
virtual

論理積オペレータ(AND)

自身と引数に指定されたオブジェクトの論理積を行い、結果を返します。
自身の内容を更新します。

引数
[in]src右辺値
戻り値
演算後の自身への参照を返します。
FVCL::Data::CFvRegion::operator| ( const CFvRegion src) const
virtual

論理和オペレータ(OR)

自身と引数に指定されたオブジェクトの論理和を行い、結果を返します。
自身の内容は更新されません。

引数
[in]src右辺値
戻り値
演算結果を返します。
FVCL::Data::CFvRegion::operator|= ( const CFvRegion src)
virtual

論理和オペレータ(OR)

自身と引数に指定されたオブジェクトの論理和を行い、結果を返します。
自身の内容を更新します。

引数
[in]src右辺値
戻り値
演算後の自身への参照を返します。
FVCL::Data::CFvRegion::operator^ ( const CFvRegion src) const
virtual

排他的論理和オペレータ(XOR)

自身と引数に指定されたオブジェクトの排他的論理和を行い、結果を返します。
自身の内容は更新されません。

引数
[in]src右辺値
戻り値
演算結果を返します。
FVCL::Data::CFvRegion::operator^= ( const CFvRegion src)
virtual

排他的論理和オペレータ(XOR)

自身と引数に指定されたオブジェクトの排他的論理和を行い、結果を返します。
自身の内容を更新します。

引数
[in]src右辺値
戻り値
演算後の自身への参照を返します。
FVCL::Data::CFvRegion::SetConnection ( INT  value)

連結性の設定

リージョンの連結性を設定します。

引数
[in]value連結性
  • 4: 4連結
  • 8: 8連結

例外
FVCL::CFveException処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode からエラーコードを取得できます。
エラーコード:
定数 内容
51 FVCL_ErrorCode::LICENSE_ERROR ライセンスがありません。
11 FVCL_ErrorCode::INVALID_PARAMETER リージョンが無効です。またはパラメータが無効です。
12 FVCL_ErrorCode::INVALID_OBJECT リージョンハンドルが無効です。
FIE:
fnFIE_region_set_connection
FVCL::Data::CFvRegion::GetConnection ( ) const

連結性の取得 (使用不可)

この関数は将来拡張するために準備しているもので、現在は使用できません。

戻り値
現在の連結性に関わらず 0 を返します。
例外
FVCL::CFveException処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode からエラーコードを取得できます。
エラーコード:
定数 内容
51 FVCL_ErrorCode::LICENSE_ERROR ライセンスがありません。
12 FVCL_ErrorCode::INVALID_OBJECT リージョンハンドルが無効です。
FVCL::Data::CFvRegion::GetArea ( ) const

面積の取得

リージョンの面積を取得します。

戻り値
面積を返します。
例外
FVCL::CFveException処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode からエラーコードを取得できます。
エラーコード:
定数 内容
51 FVCL_ErrorCode::LICENSE_ERROR ライセンスがありません。
11 FVCL_ErrorCode::INVALID_PARAMETER リージョンが無効です。
12 FVCL_ErrorCode::INVALID_OBJECT リージョンハンドルが無効です。
FIE:
fnFIE_region_get_area
FVCL::Data::CFvRegion::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 リージョンハンドルが無効です。
FIE:
fnFIE_region_get_xyrange
FVCL::Data::CFvRegion::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 リージョンハンドルが無効です。
FIE:
fnFIE_region_get_xyrange
FVCL::Data::CFvRegion::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 リージョンハンドルが無効です。
FIE:
fnFIE_region_get_xyrange
FVCL::Data::CFvRegion::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 リージョンハンドルが無効です。
FIE:
fnFIE_region_get_xyrange
FVCL::Data::CFvRegion::GetXdiff ( ) const

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

対象リージョンの外接矩形の横サイズ(xdiff)を取得します。

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

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

対象リージョンの外接矩形の縦サイズ(ydiff)を取得します。

blob_xydiff.png
戻り値
外接矩形の縦サイズを返します。
例外
FVCL::CFveException処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode からエラーコードを取得できます。
エラーコード:
定数 内容
51 FVCL_ErrorCode::LICENSE_ERROR ライセンスがありません。
11 FVCL_ErrorCode::INVALID_PARAMETER リージョンが無効です。
12 FVCL_ErrorCode::INVALID_OBJECT リージョンハンドルが無効です。
FIE:
fnFIE_region_get_xydiff
バージョン
FVCLbasic v2.0.0.0: 新規追加
FVCL::Data::CFvRegion::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 リージョンハンドルが無効です。
FIE:
fnFIE_region_get_maxminpos
FVCL::Data::CFvRegion::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 リージョンハンドルが無効です。
FIE:
fnFIE_region_get_maxminpos
FVCL::Data::CFvRegion::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 リージョンハンドルが無効です。
FIE:
fnFIE_region_get_maxminpos
FVCL::Data::CFvRegion::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 リージョンハンドルが無効です。
FIE:
fnFIE_region_get_maxminpos
FVCL::Data::CFvRegion::GetMoment1SumX ( ) const

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

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

戻り値
X方向1次モーメントを返します。
例外
FVCL::CFveException処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode からエラーコードを取得できます。
エラーコード:
定数 内容
51 FVCL_ErrorCode::LICENSE_ERROR ライセンスがありません。
11 FVCL_ErrorCode::INVALID_PARAMETER リージョンが無効です。
12 FVCL_ErrorCode::INVALID_OBJECT リージョンハンドルが無効です。
FIE:
fnFIE_region_get_moment1
FVCL::Data::CFvRegion::GetMoment1SumY ( ) const

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

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

戻り値
Y方向1次モーメントを返します。
例外
FVCL::CFveException処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode からエラーコードを取得できます。
エラーコード:
定数 内容
51 FVCL_ErrorCode::LICENSE_ERROR ライセンスがありません。
11 FVCL_ErrorCode::INVALID_PARAMETER リージョンが無効です。
12 FVCL_ErrorCode::INVALID_OBJECT リージョンハンドルが無効です。
FIE:
fnFIE_region_get_moment1
FVCL::Data::CFvRegion::GetMoment2SumX ( ) const

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

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

戻り値
X方向2次モーメントを返します。
例外
FVCL::CFveException処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode からエラーコードを取得できます。
エラーコード:
定数 内容
51 FVCL_ErrorCode::LICENSE_ERROR ライセンスがありません。
11 FVCL_ErrorCode::INVALID_PARAMETER リージョンが無効です。
12 FVCL_ErrorCode::INVALID_OBJECT リージョンハンドルが無効です。
FIE:
fnFIE_region_get_moment2
FVCL::Data::CFvRegion::GetMoment2SumY ( ) const

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

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

戻り値
Y方向2次モーメントを返します。
例外
FVCL::CFveException処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode からエラーコードを取得できます。
エラーコード:
定数 内容
51 FVCL_ErrorCode::LICENSE_ERROR ライセンスがありません。
11 FVCL_ErrorCode::INVALID_PARAMETER リージョンが無効です。
12 FVCL_ErrorCode::INVALID_OBJECT リージョンハンドルが無効です。
FIE:
fnFIE_region_get_moment2
FVCL::Data::CFvRegion::GetMoment2SumXY ( ) const

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

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

戻り値
XY方向2次モーメントを返します。
例外
FVCL::CFveException処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode からエラーコードを取得できます。
エラーコード:
定数 内容
51 FVCL_ErrorCode::LICENSE_ERROR ライセンスがありません。
11 FVCL_ErrorCode::INVALID_PARAMETER リージョンが無効です。
12 FVCL_ErrorCode::INVALID_OBJECT リージョンハンドルが無効です。
FIE:
fnFIE_region_get_moment2
FVCL::Data::CFvRegion::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 リージョンハンドルが無効です。
FIE:
fnFIE_region_get_central_moment2
バージョン
FVCLbasic v2.0.0.0: 新規追加
FVCL::Data::CFvRegion::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 リージョンハンドルが無効です。
FIE:
fnFIE_region_get_central_moment2
バージョン
FVCLbasic v2.0.0.0: 新規追加
FVCL::Data::CFvRegion::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 リージョンハンドルが無効です。
FIE:
fnFIE_region_get_central_moment2
バージョン
FVCLbasic v2.0.0.0: 新規追加
FVCL::Data::CFvRegion::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 リージョンハンドルが無効です。
FIE:
fnFIE_region_get_moment3
バージョン
FVCLbasic v2.0.0.0: 新規追加
FVCL::Data::CFvRegion::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 リージョンハンドルが無効です。
FIE:
fnFIE_region_get_moment3
バージョン
FVCLbasic v2.0.0.0: 新規追加
FVCL::Data::CFvRegion::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 リージョンハンドルが無効です。
FIE:
fnFIE_region_get_moment3
バージョン
FVCLbasic v2.0.0.0: 新規追加
FVCL::Data::CFvRegion::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 リージョンハンドルが無効です。
FIE:
fnFIE_region_get_moment3
バージョン
FVCLbasic v2.0.0.0: 新規追加
FVCL::Data::CFvRegion::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 リージョンハンドルが無効です。
FIE:
fnFIE_region_get_central_moment3
バージョン
FVCLbasic v2.0.0.0: 新規追加
FVCL::Data::CFvRegion::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 リージョンハンドルが無効です。
FIE:
fnFIE_region_get_central_moment3
バージョン
FVCLbasic v2.0.0.0: 新規追加
FVCL::Data::CFvRegion::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 リージョンハンドルが無効です。
FIE:
fnFIE_region_get_central_moment3
バージョン
FVCLbasic v2.0.0.0: 新規追加
FVCL::Data::CFvRegion::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 リージョンハンドルが無効です。
FIE:
fnFIE_region_get_central_moment3
バージョン
FVCLbasic v2.0.0.0: 新規追加
FVCL::Data::CFvRegion::GetMoment ( INT  xn,
INT  yn 
) const

N次モーメントの取得

リージョンのN次モーメントを取得します。

引数
[in]xnXの次数 (0~)
[in]ynYの次数 (0~)
戻り値
指定次数から計算されたモーメントを返します。
例外
FVCL::CFveException処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode からエラーコードを取得できます。
エラーコード:
定数 内容
51 FVCL_ErrorCode::LICENSE_ERROR ライセンスがありません。
11 FVCL_ErrorCode::INVALID_PARAMETER リージョンが無効です。
12 FVCL_ErrorCode::INVALID_OBJECT リージョンハンドルが無効です。
解説:
特徴量は下式にて定義されます。

\[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 \]

となります。
本クラスの1次モーメント取得メソッド(GetMoment1SumX, GetMoment1SumY) に付加されている sumx,sumy は、M の別名称です。
それぞれ以下のように対応しています。

\[M_{10} = sumx \]

\[M_{01} = sumy \]

本クラスの2次モーメント取得メソッド(GetMoment2SumX, GetMoment2SumY, GetMoment2SumXY) に付加されている sumx,sumy,sumxy は、M の別名称です。
それぞれ以下のように対応しています。

\[M_{20} = sumx \]

\[M_{02} = sumy \]

\[M_{11} = sumxy \]

注意:
内部計算は DOUBLE 型変数にて行いますが、型精度の都合で 大きなリージョンでは桁落ちによる計算誤差が発生します。 (桁数は指定次数によって変わるため、どの程度のサイズで桁落ちが発生するかは不明です)
FIE:
fnFIE_region_get_moment
FVCL::Data::CFvRegion::GetCentralMoment ( INT  xn,
INT  yn 
) const

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

リージョンの重心N次モーメントを取得します。

引数
[in]xnXの次数 (0~)
[in]ynYの次数 (0~)
戻り値
指定次数から計算された重心モーメントを返します。
例外
FVCL::CFveException処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode からエラーコードを取得できます。
エラーコード:
定数 内容
51 FVCL_ErrorCode::LICENSE_ERROR ライセンスがありません。
11 FVCL_ErrorCode::INVALID_PARAMETER リージョンが無効です。
12 FVCL_ErrorCode::INVALID_OBJECT リージョンハンドルが無効です。
解説:
特徴量は下式にて定義されます。

\[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 : 面積
注意:
内部計算は DOUBLE 型変数にて行いますが、型精度の都合で 大きなリージョンでは桁落ちによる計算誤差が発生します。 (桁数は指定次数によって変わるため、どの程度のサイズで桁落ちが発生するかは不明です)
FIE:
fnFIE_region_get_central_moment
FVCL::Data::CFvRegion::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 リージョンハンドルが無効です。
FIE:
fnFIE_region_get_center
FVCL::Data::CFvRegion::GetEquivalentEllipse ( ) const

等価楕円の取得

リージョンの面積と等価な楕円を取得します。

戻り値
等価楕円を返します。
例外
FVCL::CFveException処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode からエラーコードを取得できます。
エラーコード:
定数 内容
51 FVCL_ErrorCode::LICENSE_ERROR ライセンスがありません。
11 FVCL_ErrorCode::INVALID_PARAMETER リージョンが無効です。
12 FVCL_ErrorCode::INVALID_OBJECT リージョンハンドルが無効です。
FIE:
fnFIE_region_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::Data::CFvRegion::GetEquivalentDisk ( ) const

面積等価円の取得

リージョンの面積と等価な円を取得します。

戻り値
面積等価円を返します。
例外
FVCL::CFveException処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode からエラーコードを取得できます。
エラーコード:
定数 内容
51 FVCL_ErrorCode::LICENSE_ERROR ライセンスがありません。
11 FVCL_ErrorCode::INVALID_PARAMETER リージョンが無効です。
12 FVCL_ErrorCode::INVALID_OBJECT リージョンハンドルが無効です。
FIE:
fnFIE_region_get_equivalent_disk
FVCL::Data::CFvRegion::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 リージョンハンドルが無効です。
FIE:
fnFIE_region_get_equivalent_circle
FVCL::Data::CFvRegion::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 リージョンハンドルが無効です。
FIE:
fnFIE_region_get_xyrange
参照
CFvRegion::GetXmin
CFvRegion::GetYmin
CFvRegion::GetXmax
CFvRegion::GetYmax
FVCL::Data::CFvRegion::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 リージョンハンドルが無効です。
FIE:
fnFIE_region_get_rect1_area
FVCL::Data::CFvRegion::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 リージョンハンドルが無効です。
FIE:
fnFIE_region_get_rect1_lratio
FVCL::Data::CFvRegion::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 リージョンハンドルが無効です。
FIE:
fnFIE_region_get_rect1_sratio
FVCL::Data::CFvRegion::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 リージョンハンドルが無効です。
解説:
座標点列は、0度のときに画像座標系で左上となる点を始点に、時計回りに頂点を返します。
blob_rect2pos.png
FIE:
fnFIE_region_get_rect2pos
参照
CFvRegion::GetRect2Pos
FVCL::Data::CFvRegion::GetRect2Pos ( ) const

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

リージョンの外接長方形の4頂点座標を取得します。

戻り値
頂点座標を返します。
例外
FVCL::CFveException処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode からエラーコードを取得できます。
エラーコード:
定数 内容
51 FVCL_ErrorCode::LICENSE_ERROR ライセンスがありません。
11 FVCL_ErrorCode::INVALID_PARAMETER リージョンが無効です。
12 FVCL_ErrorCode::INVALID_OBJECT リージョンハンドルが無効です。
FIE:
fnFIE_region_get_rect2pos
解説:
座標点列は、0度のときに画像座標系で左上となる点を始点に、時計回りに頂点を返します。
blob_rect2pos.png
FVCL::Data::CFvRegion::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 リージョンハンドルが無効です。
FIE:
fnFIE_region_get_rect2pos
解説:
座標点列は、0度のときに画像座標系で左上となる点を始点に、時計回りに頂点を返します。
blob_rect2pos.png
FVCL::Data::CFvRegion::GetRect2Lsize ( ) const

外接長方形横長の取得

リージョンの外接長方形横長を取得します。

戻り値
外接長方形横長を返します。
例外
FVCL::CFveException処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode からエラーコードを取得できます。
エラーコード:
定数 内容
51 FVCL_ErrorCode::LICENSE_ERROR ライセンスがありません。
11 FVCL_ErrorCode::INVALID_PARAMETER リージョンが無効です。
12 FVCL_ErrorCode::INVALID_OBJECT リージョンハンドルが無効です。
解説:
慣性主軸と同じ傾きの、領域に外接する長方形のサイズを表す特徴量です。
慣性主軸とは慣性等価楕円の主軸のことで、 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 : 慣性等価楕円 主軸傾き(慣性主軸角)
FIE:
fnFIE_region_get_rect2_size
FVCL::Data::CFvRegion::GetRect2Wsize ( ) const

外接長方形縦長の取得

リージョンの外接長方形縦長を取得します。

戻り値
外接長方形縦長を返します。
例外
FVCL::CFveException処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode からエラーコードを取得できます。
エラーコード:
定数 内容
51 FVCL_ErrorCode::LICENSE_ERROR ライセンスがありません。
11 FVCL_ErrorCode::INVALID_PARAMETER リージョンが無効です。
12 FVCL_ErrorCode::INVALID_OBJECT リージョンハンドルが無効です。
解説:
慣性主軸と同じ傾きの、領域に外接する長方形のサイズを表す特徴量です。
慣性主軸とは慣性等価楕円の主軸のことで、 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 : 慣性等価楕円 主軸傾き(慣性主軸角)
FIE:
fnFIE_region_get_rect2_size
FVCL::Data::CFvRegion::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 リージョンハンドルが無効です。
FIE:
fnFIE_region_get_rect2_area
解説:
慣性主軸と同じ傾きの、領域に外接する長方形の面積を表す特徴量です。
慣性主軸とは慣性等価楕円の主軸のことで、 axistheta と本ライブラリでは表記しています。
FVCL::Data::CFvRegion::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 リージョンハンドルが無効です。
FIE:
fnFIE_region_get_rect2_lratio
解説:
慣性主軸と同じ傾きの、領域に外接する長方形の縦横比を表す特徴量です。
慣性主軸とは慣性等価楕円の主軸のことで、 axistheta と本ライブラリでは表記しています。
FVCL::Data::CFvRegion::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 リージョンハンドルが無効です。
FIE:
fnFIE_region_get_rect2_sratio
解説:
慣性主軸と同じ傾きの領域に外接する長方形の面積比を表す特徴量です。
慣性主軸とは慣性等価楕円の主軸のことで、 axistheta と本ライブラリでは表記しています。
FVCL::Data::CFvRegion::GetFeretDiameterMax ( ) const

最大フェレ径の取得

リージョンの最大フェレ径を取得します。
フェレ径については、 GetFeretDiameter の説明をご参照ください。

戻り値
最大フェレ径を返します。
例外
FVCL::CFveException処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode からエラーコードを取得できます。
エラーコード:
定数 内容
51 FVCL_ErrorCode::LICENSE_ERROR ライセンスがありません。
11 FVCL_ErrorCode::INVALID_PARAMETER リージョンが無効です。
12 FVCL_ErrorCode::INVALID_OBJECT リージョンハンドルが無効です。
FIE:
fnFIE_region_get_feret_diameter_maxmin
FVCL::Data::CFvRegion::GetFeretDiameterMaxTheta ( ) const

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

リージョンの最大フェレ径の角度を取得します。
フェレ径については、 GetFeretDiameter の説明をご参照ください。
角度値はラジアンで、角度範囲は $ -\pi \le \theta \le \pi$ です

戻り値
最大フェレ径の角度を返します。
例外
FVCL::CFveException処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode からエラーコードを取得できます。
エラーコード:
定数 内容
51 FVCL_ErrorCode::LICENSE_ERROR ライセンスがありません。
11 FVCL_ErrorCode::INVALID_PARAMETER リージョンが無効です。
12 FVCL_ErrorCode::INVALID_OBJECT リージョンハンドルが無効です。
FIE:
fnFIE_region_get_feret_diameter_maxmin
FVCL::Data::CFvRegion::GetFeretDiameterMin ( ) const

最小フェレ径の取得

リージョンの最小フェレ径を取得します。
フェレ径については、 GetFeretDiameter の説明をご参照ください。

戻り値
最小フェレ径を返します。
例外
FVCL::CFveException処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode からエラーコードを取得できます。
エラーコード:
定数 内容
51 FVCL_ErrorCode::LICENSE_ERROR ライセンスがありません。
11 FVCL_ErrorCode::INVALID_PARAMETER リージョンが無効です。
12 FVCL_ErrorCode::INVALID_OBJECT リージョンハンドルが無効です。
FIE:
fnFIE_region_get_feret_diameter_maxmin
FVCL::Data::CFvRegion::GetFeretDiameterMinTheta ( ) const

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

リージョンの最小フェレ径の角度を取得します。
フェレ径については、 GetFeretDiameter の説明をご参照ください。
角度値はラジアンで、角度範囲は $ -\pi \le \theta \le \pi$ です

戻り値
最小フェレ径の角度を返します。
例外
FVCL::CFveException処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode からエラーコードを取得できます。
エラーコード:
定数 内容
51 FVCL_ErrorCode::LICENSE_ERROR ライセンスがありません。
11 FVCL_ErrorCode::INVALID_PARAMETER リージョンが無効です。
12 FVCL_ErrorCode::INVALID_OBJECT リージョンハンドルが無効です。
FIE:
fnFIE_region_get_feret_diameter_maxmin
FVCL::Data::CFvRegion::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 リージョンハンドルが無効です。
FIE:
fnFIE_region_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::Data::CFvRegion::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 リージョンハンドルが無効です。
FIE:
fnFIE_region_get_perimeter
注意

FVCL::Data::CFvRegion::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 リージョンハンドルが無効です。
29 FVCL_ErrorCode::NOT_CALCULABLE 計算できません。
FIE:
fnFIE_region_get_convex2d
解説:
凸包とは、その領域を含む最小の凸多角形のことです。
直感的に言い表すと、木の板に釘を(同じ面に)いくつか打ち付けた後、 その釘がすべて入るように外側から輪ゴムで留めたときにできる輪ゴムの形が凸包となります。
データ解析的には凸多角形という非常に扱い易い形で点集合全体を近似している、と考えられます。
blob_convex2d.png
注意:
  • 領域全点が一直線上にある場合はエラーになります。
  • xdiff, ydiff が 65535 以下の条件を満たさない場合はオーバーフローの可能性があります。
  • ラン数が非常に多い場合は凸包が計算できずエラーになります。((ランの数+1)*2*sizeof(PNT_T)≧UI32_MAX となる場合)

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

凸包の取得

リージョンに外接する凸包を取得します。

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

FVCL::Data::CFvRegion::GetConvex2d ( FVCL::CFvBuffer< PNT_T > *  points) const

凸包の取得

リージョンに外接する凸包を取得します。

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

FVCL::Data::CFvRegion::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 リージョンハンドルが無効です。
29 FVCL_ErrorCode::NOT_CALCULABLE 計算できません。
FIE:
fnFIE_region_get_convexfeature
参照
GetConvexAreaRatio
FVCL::Data::CFvRegion::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 リージョンハンドルが無効です。
29 FVCL_ErrorCode::NOT_CALCULABLE 計算できません。
FIE:
fnFIE_region_get_convexfeature
参照
GetConvexPerimRatio
FVCL::Data::CFvRegion::GetConvexAreaRatio ( ) const

凸包面積比の取得

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

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


下式にて定義されます。

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


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

凸包周囲長比の取得

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

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


下式にて定義されます。

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


戻り値
凸包周囲長比を返します。
例外
FVCL::CFveException処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode からエラーコードを取得できます。
エラーコード:
定数 内容
51 FVCL_ErrorCode::LICENSE_ERROR ライセンスがありません。
1 FVCL_ErrorCode::FAILED_TO_ALLOCATE メモリが不足しています。
11 FVCL_ErrorCode::INVALID_PARAMETER リージョンが無効です。
12 FVCL_ErrorCode::INVALID_OBJECT リージョンハンドルが無効です。
29 FVCL_ErrorCode::NOT_CALCULABLE 計算できません。
FIE:
fnFIE_region_get_convexratio
参照
GetConvexPerim
FVCL::Data::CFvRegion::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 リージョンハンドルが無効です。
29 FVCL_ErrorCode::NOT_CALCULABLE 計算できません。
FIE:
fnFIE_region_get_circmcircle
解説:
最小外接円(最小包含円とも呼ばれる)とは、 領域外周の点の2点または3点に接する(点を通る)円で、 かつ領域内のすべての点を内包する円のうち最小のものです。
blob_circumcircle.png
最小外接円例
但し、点の広がりについては考慮しません。
円と接する点においては、円はその点の中心を通ります。 このため、領域内の点が1点しか無い場合は最小外接円を求めることは出来ません。
FVCL::Data::CFvRegion::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 リージョンハンドルが無効です。
FIE:
fnFIE_region_calc_boundary
解説:
領域の周囲座標列です。 領域の境界には external boundary と internal boundary の2種類がありますが、 本関数では external boundary のみを抽出します。(下図参照)
fie_region_boundary_01.png
また、周囲座標は4連結と8連結の場合で座標が異なることがあります。
fie_region_boundary_02.png
本ライブラリでは境界座標は画像座標系で反時計回りに探索(右手の法則)します。
注意:

FVCL::Data::CFvRegion::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 リージョンハンドルが無効です。
FIE:
fnFIE_region_calc_boundary
解説:
領域の周囲座標列です。 領域の境界には external boundary と internal boundary の2種類がありますが、 本関数では external boundary のみを抽出します。(下図参照)
fie_region_boundary_01.png
また、周囲座標は4連結と8連結の場合で座標が異なることがあります。
fie_region_boundary_02.png
本ライブラリでは境界座標は画像座標系で反時計回りに探索(右手の法則)します。
注意:

FVCL::Data::CFvRegion::GetBoundary ( FVCL::CFvBuffer< PNT_T > *  points,
bool  contain_stopper = true 
) const

周囲座標の取得 (External)

リージョンの境界点列を取得します。

引数
[out]points境界点列
[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 リージョンハンドルが無効です。
FIE:
fnFIE_measure_calc_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 が格納された点)を挿入しています。 ストッパーが不要な場合は、 contain_stopper に false を指定してください。 また、境界点列が複数ある場合、1 yの昇順、2 xの昇順で境界点列の始点を使ってソートします。
注意:

FVCL::Data::CFvRegion::GetBoundaryEx ( FVCL::CFvBuffer< PNT_T > *  points_ext,
FVCL::CFvBuffer< PNT_T > *  points_int,
bool  contain_stopper = true 
) const

周囲座標の取得

リージョンの境界点列を取得します。

引数
[out]points_ext境界点列(外周) [不要な場合は NULL を指定してください]
[out]points_int境界点列(内周) [不要な場合は NULL を指定してください]
[in]contain_stopperストッパー(I32_MIN の座標)を含めるか否か
例外
FVCL::CFveException処理に失敗した場合は例外を発行します。 発行された例外インスタンスの GetErrorCode からエラーコードを取得できます。
エラーコード:
定数 内容
51 FVCL_ErrorCode::LICENSE_ERROR ライセンスがありません。
1 FVCL_ErrorCode::FAILED_TO_ALLOCATE メモリが不足しています。
11 FVCL_ErrorCode::INVALID_PARAMETER リージョンが無効です。
12 FVCL_ErrorCode::INVALID_OBJECT リージョンハンドルが無効です。
FIE:
fnFIE_region_calc_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::Data::CFvRegion::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 リージョンハンドルが無効です。
FIE:
fnFIE_region_calc_boundary_ex
解説:
領域の周囲座標列です。 領域の境界には external boundary と internal boundary の2種類がありますが、 本関数では internal boundary のみを抽出します。(下図参照)
fie_region_boundary_01.png
また、周囲座標は4連結と8連結の場合で座標が異なることがあります。
fie_region_boundary_02.png
本ライブラリでは境界座標は画像座標系で反時計回りに探索(右手の法則)します。
領域が2つ以上ある場合(ラベリングするとラベル数が2以上になるとき)でも、すべての領域について境界点列を生成します。 1つの境界点列が終了すると、ストッパー(座標に I32_MIN が格納された点)を挿入しています。 また、境界点列が複数ある場合、1 yの昇順、2 xの昇順で境界点列の始点を使ってソートします。
注意:

FVCL::Data::CFvRegion::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 リージョンハンドルが無効です。
FIE:
fnFIE_region_calc_boundary_ex
解説:
領域の周囲座標列です。 領域の境界には external boundary と internal boundary の2種類がありますが、 本関数では internal boundary のみを抽出します。(下図参照)
fie_region_boundary_01.png
また、周囲座標は4連結と8連結の場合で座標が異なることがあります。
fie_region_boundary_02.png
本ライブラリでは境界座標は画像座標系で反時計回りに探索(右手の法則)します。
領域が2つ以上ある場合(ラベリングするとラベル数が2以上になるとき)でも、すべての領域について境界点列を生成します。 1つの境界点列が終了すると、ストッパー(座標に I32_MIN が格納された点)を挿入しています。 また、境界点列が複数ある場合、1 yの昇順、2 xの昇順で境界点列の始点を使ってソートします。
注意:

FVCL::Data::CFvRegion::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 リージョンハンドルが無効です。
FIE:
fnFIE_region_get_distance_to_boundary
FVCL::Data::CFvRegion::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 リージョンハンドルが無効です。
FIE:
fnFIE_region_get_distance_to_boundary
FVCL::Data::CFvRegion::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 リージョンハンドルが無効です。
FIE:
fnFIE_region_get_distance_to_boundary
FVCL::Data::CFvRegion::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 リージョンハンドルが無効です。
FIE:
fnFIE_region_get_distance_to_boundary
FVCL::Data::CFvRegion::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 リージョンハンドルが無効です。
FIE:
fnFIE_region_get_circularity1
FVCL::Data::CFvRegion::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 リージョンハンドルが無効です。
FIE:
fnFIE_region_get_circularity2
FVCL::Data::CFvRegion::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 リージョンハンドルが無効です。
FIE:
fnFIE_region_get_circularity3

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