Grabber::setDisplayFrameFilters Method

イメージストリームのディスプレイパスにフレームフィルタのリストを挿入します。ディスプレイパスにオーバーレイが存在する場合、フィルタリストはその前に挿入されます。つまりオーバーレイはフィルタリストとディスプレイの間に位置することになります。

構文

bool setDisplayFrameFilters( IFrameFilter* pFilter );
bool setDisplayFrameFilters( const tFrameFilterList& filterList );
パラメータ 説明
pFilter IFrameFilterクラスライブラリリファレンス>クラス>IFrameFilterオブジェクトへのポインタです。このパラメータを使用した場合、フィルタリストが生成されIFrameFilterクラスライブラリリファレンス>クラス>IFrameFilterオブジェクトが挿入されます。
filterList IFrameFilterクラスライブラリリファレンス>クラス>IFrameFilter オブジェクトへのポインタを含むtFrameFilterListクラスライブラリリファレンス>型定義>tFrameFilterList

戻り値

処理が正常に完了した場合にはtrueを返します。もしエラーが発生した場合にはgetLastErrorクラスライブラリリファレンス>クラス>Grabber>Grabber::getLastError Methodをコールしてエラー情報の詳細を取得してください。

備考

フィルタインスタンスのライフタイムはこのメソッドのコーラーによってチェックしなければいけません。したがってコーラーはフィルタリストのプレーンポインタによって参照されるフィルタオブジェクトに関与することになります。モジュールよりロードされたフィルタを使いたい場合は、プレーンポインタを取得するためのフィルタインスタンスを保持するsmart_comポインタのgetメソッドをコールする必要があります。デバイスパスに挿入されたフィルタはNullポインタをパラメータとするsetDeviceFrameFiltersへのコールによって除去されるまで破棄してはいけません。

インフォメーション

IC Imaging Control 3.0より導入。

サンプル

以下のコードは2つのフレームフィルタインスタンスを作成しフィルタチェーンとしてセットする方法を紹介しています。

m_pROIFilter = FilterLoader::createFilter( "ROI" );
m_pRotFlipFilter = FilterLoader::createFilter( "Rotate Flip" );

// フィルタパラメータのセット
tFrameFilterList filterList;

// スマートポインタからプレーンポインタを抽出するために.getを使用
filterList.push_back( m_pROIFilter.get() );
filterList.push_back( m_pRotFlipFilter.get() );

m_Grabber.setDisplayFrameFilters( filterList );

スマートポインタからプレーンポインタを抽出するためのsmart_com.get()の使い方に注意してください。