ROI (関心領域)フィルタ

ROIフィルタはフレームのある部分だけを切りだして表示するようにします。

ROIフィルタの使い方

以下のコードを使ってDeNoiseフィルタをアプリケーションにロードすることができます。

// stdfilters.ftfモジュールからDeNoiseフィルタをロードする
#ifdef _DEBUG         
    smart_com<IFrameFilter> pFilter = FilterLoader::createFilter( "ROI",   // フィルタ名
                                    "stdfiltersd.ftf" ); // モジュールファイル
#else
    smart_com<IFrameFilter> pFilter = FilterLoader::createFilter( "ROI",   // フィルタ名
"stdfilters.ftf" ); // モジュールファイル
#endif

パラメータ

最終的なフレームに映される画像データは以下の4つのフィルタパラメータによって決定されます。

Left これはソースフレームの一番左の列における、ROIの始まりのポイントを指定するための値です。ソースフレームに対して水平方向にROIを移動させるために使われます。 ライブ画像表示中、停止中に関わらず変更が可能です。
Top これはソースフレームの一番上の行における、ROIの始まりのポイントを指定するための値です。ソースフレームに対して垂直方向にROIを移動させるために使われます。 ライブ画像表示中、停止中に関わらず変更が可能です。
Width これはROIの幅を指定するための値です。この値の変更はビデオフォーマットを変更することになるためライブ画像表示中には変更できません。
Height これはROIの高さを指定するための値です。この値の変更はビデオフォーマットを変更することになるためライブ画像表示中には変更できません。

プロパティダイアログ

ROIの位置や大きさは以下のプロパティダイアログで設定が可能です。

プログラムからパラメータにアクセスする

アプリケーションでパラメータの設定をする場合、以下のソースコードを利用することで可能となります。

long lLeft = 0;
long lTop = 0;
long lHeight = 0;
long lWidth = 0;

// 現在のROI情報の取得
pFilter->getParameter( "Left", lLeft );
pFilter->getParameter( "Top", lTop );
pFilter->getParameter( "Height",lHeight );
pFilter->getParameter( "Width", lWidth );

// 新しいROIの設定
lLeft = 100;
lTop = 50;
// 画像サイズに変更はないため、ROIの位置の設定はにライブ画像表示中、
// 停止中に関わらず変更が可能です。
pFilter->setParameter( "Left", lLeft );
pFilter->setParameter( "Top", lTop );

if( m_Grabber.isLive() == false )
{
  // 幅と高さの変更はライブ画像停止中のみ可能となります。
  // ライブ画像表示中の場合にはsetParameter();によってエラーが返されます。
  lHeight = 120;
  lWidth = 180;
  pFilter->setParameter( "Height",lHeight );
  pFilter->setParameter( "Width", lWidth );
}