FrameUpdateFilterImpl
アップデートフィルタを実装するためにはこのクラスを継承する必要があります。
FrameFilterImpl と FrameUpdateFilterImpl
FrameFilterImplクラスライブラリリファレンス>クラス>FrameFilterImplを継承したフィルタはそのtransformクラスライブラリリファレンス>クラス>FrameFilterImpl>FrameFilterImpl::transform Methodメッド内で画像データをソースからディスティネーションフレームにコピーします。
FrameUpdateFilterImpl を継承したフィルタはupdateInPlaceクラスライブラリリファレンス>クラス>FrameUpdateFilterImpl>FrameUpdateFilterImpl::updateInPlace Methodで受け取ったシングルバッファの分析・操作を行います。
タスクに応じて上記の2つを使い分けることが推奨されます。
実装
アップデートフィルタの取得には最低条件として以下を実装する必要があります。
フィルタの振舞をカスタマイズするために以下をオーバーライドすることが可能です。
- modifiesDataクラスライブラリリファレンス>クラス>FrameUpdateFilterImpl>FrameUpdateFilterImpl::modifiesData Method
- FrameFilterImpl::notifyStartクラスライブラリリファレンス>クラス>FrameFilterImpl>FrameFilterImpl::notifyStart Method
- FrameFilterImpl::notifyStopクラスライブラリリファレンス>クラス>FrameFilterImpl>FrameFilterImpl::notifyStop Method
- FrameFilterImpl::checkInputTypeクラスライブラリリファレンス>クラス>FrameFilterImpl>FrameFilterImpl::checkInputType Method
変換フィルタにダイアログボックスを追加するにはIFrameFilterクラスライブラリリファレンス>クラス>IFrameFilterよりメソッドをオーバーライドする必要があります。
IFrameFilter::getAvailableParametersクラスライブラリリファレンス>クラス>IFrameFilter>IFrameFilter::getAvailableParameters Method, IFrameFilter::setParameterクラスライブラリリファレンス>クラス>IFrameFilter>IFrameFilter::setParameter Method , IFrameFilter::getParameterクラスライブラリリファレンス>クラス>IFrameFilter>IFrameFilter::getParameter Methodを使ってクエリ・操作できるパラメータを登録するには以下を使用します。
- FrameFilterImpl::addBoolParamクラスライブラリリファレンス>クラス>FrameFilterImpl>FrameFilterImpl::addBoolParam Method
- FrameFilterImpl::addLongParamクラスライブラリリファレンス>クラス>FrameFilterImpl>FrameFilterImpl::addLongParam Method
- FrameFilterImpl::addFloatParamクラスライブラリリファレンス>クラス>FrameFilterImpl>FrameFilterImpl::addFloatParam Method
- FrameFilterImpl::addStringParamクラスライブラリリファレンス>クラス>FrameFilterImpl>FrameFilterImpl::addStringParam Method
- FrameFilterImpl::addDataParamクラスライブラリリファレンス>クラス>FrameFilterImpl>FrameFilterImpl::addDataParam Method
FrameUpdateFilterImplから継承させるにはテンプレートのパラメータとして導出クラスの名前を使用します。
class MyFilter
: public DShowLib::FrameUpdateFilterImpl<MyFilter>
{
// ...
};
FrameUpdateFilterImplより継承したすべてのクラスは静的メソッドgetStaticFilterInfoを持たなければなりません。これはフィルタの情報を保持するFilterInfoクラスライブラリリファレンス>構造体>FlterInfo Structure構造体を返すものです。
public:
// FrameFilterImplの実装
static DShowLib::FilterInfo getStaticFilterInfo();
メソッドの実装については フレームフィルタを記述する: 2値化プログラマーズガイド>フレームフィルタの記述: 二値化処理をご参照ください。
インフォメーション
ヘッダファイル: tisudshl.h
ネームスペース: DShowLib
IC Imaging Control 3.0より導入
継承
IFrameFilterクラスライブラリリファレンス>クラス>IFrameFilter
FrameFilterImplクラスライブラリリファレンス>クラス>FrameFilterImpl
FrameUpdateFilterImpl
メソッド
メソッド | 説明 |
---|---|
modifiesDataクラスライブラリリファレンス>クラス>FrameUpdateFilterImpl>FrameUpdateFilterImpl::modifiesData Method | frame updateコールバックが渡された画像データに処理を加えたかどうかを返します。デフォルトの実装ではtrueを返します。 |
updateInPlaceクラスライブラリリファレンス>クラス>FrameUpdateFilterImpl>FrameUpdateFilterImpl::updateInPlace Method | フレームが更新可能な時にコールされます。 |