WIL説明書(C++)  3.0.0

リージョンオブジェクト

リージョンオブジェクト(FVCL::Data::CFvRegion)は、下図のように複数のランレングス(FVCL::Data::CFvRunLength)で構成されます。

CFvRegion.png

このクラスの標準のコンストラクタでインスタンスを構築した時は、ランレングスの個数は 0 です。 リージョンの操作を行う前に、リージョンの生成を行うか リージョンに対応した関数から有効なリージョンを得る必要があります。 リージョンの生成を行うには、このクラスの初期値指定コンストラクタかリージョンの生成関数を使用してください。


リージョン処理

リージョンオブジェクトは、2値画像のように 0/1 で構成されていますので、 画像処理と同様にモルフォロジ処理や論理演算が行えます。 また、始点座標とサイズを保有しているので、自由形状の処理範囲のように扱えます。 このネームスペースの FVCL::Region::Measure に集約される関数では、 濃淡画像の特徴量を取得する為に使用しています。 画像演算(FVCL::Operation)ではマスクとして使用しています。

リージョンを作成する方法はいくつかありますが、濃淡画像の特徴量を取得するために作成する場合は、 下図のように2値ブローブ解析を行って1つのブローブをリージョンに変換する方法が容易です。

region_flow.png

手順:

  1. 濃淡画像を2値化します。(2値化手法は任意です)
  2. 2値画像を2値ブローブ解析します。(CFvBlob)
  3. 得られたブローブの一部をリージョンに変換します。(GetRegion)
  4. 変換されたリージョンで2値化前の濃淡画像から特徴量を計測します。(画像特徴量計算)


注意: この際に計測対象の濃淡画像の処理範囲とリージョンの関係に注意してください。
上記手順 2 の2値ブローブ解析は、処理範囲設定の有無に関わらず、常に画像左上を起点(0,0)として処理します。 従って、手順 3 で変換されたリージョンは、画像の左上を起点(0,0)とした座標を保有しています。 手順 4 で濃淡画像を計測する際は画像左上を原点としてください。

原点は、各関数の引数 origin_mode で指定できます。 origin_mode に FVCL::OriginMode::Image を指定すると画像左上を原点として処理します。 省略時の値を FVCL::OriginMode::Window にしていますが、これは過去のバージョンとの互換性の為です。 この場合 処理ウィンドウ の左上を原点として処理します。 処理ウィンドウの左上を 0,0 以外に指定した画像オブジェクトで上記手順を実行した場合、 下図右のように、リージョンが意図しない位置を計測することになりますのでご注意ください。

【正しい位置】 【誤った位置】
region5.png
region6.png
参照
FVCL::Data::CFvRunLength
FVCL::Blob::CFvBlobData::GetRegion() const
FVCL::Blob::CFvBlobResult::GetRegion( UINT blobno, FVCL::Data::CFvRegion* region ) const
FVCL::Data::CFvRegion
FVCL::Operation::CFvAddScalar::SetMask( const CFvDataObject* mask )
FVCL::Operation::CFvDiffScalar::SetMask( const CFvDataObject* mask )
FVCL::Operation::CFvDivScalar::SetMask( const CFvDataObject* mask )
FVCL::Operation::CFvMaxScalar::SetMask( const CFvDataObject* mask )
FVCL::Operation::CFvMinScalar::SetMask( const CFvDataObject* mask )
FVCL::Operation::CFvMulScalar::SetMask( const CFvDataObject* mask )
FVCL::Operation::CFvSubScalar::SetMask( const CFvDataObject* mask )
FVCL::Operation::CFvAddOperation::SetMask( const CFvDataObject* mask )
FVCL::Operation::CFvDiffOperation::SetMask( const CFvDataObject* mask )
FVCL::Operation::CFvDivOperation::SetMask( const CFvDataObject* mask )
FVCL::Operation::CFvMaxOperation::SetMask( const CFvDataObject* mask )
FVCL::Operation::CFvMinOperation::SetMask( const CFvDataObject* mask )
FVCL::Operation::CFvMulOperation::SetMask( const CFvDataObject* mask )
FVCL::Operation::CFvSubOperation::SetMask( const CFvDataObject* mask )

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