フレームフィルタクラスウィザード

ウィザードを使用し新しいフレームフィルタークラスを作成する方法について説明します。

概 要

このウィザードはフレームフィルタクラスのソースコードを作成します。オプションとしてこのフレームフィルタ用のプロパティダイアログも追加することができます。フィルタによって画像処理が実装され、取り込まれて来るフレームを反転させます。これはプログラマーが上書きするものです。

ウィザードは2つのメンバ変数をクラスに追加します。

  • m_bEnabled

    このブール型の値は画像処理を有効/無効化するためのフレームフィルタのtransformクラスライブラリリファレンス>クラス>FrameFilterImpl>FrameFilterImpl::transform Methodメソッドにおいて使用されます。この変数はフレームフィルタクラスによってエクスポートされるものです。したがってメソッドsetEnabled 、getEnabled はフレームフィルタクラスに挿入されることになります。クラスのコンストラクター内では、この変数はフレームフィルタのプロパティリストに加えられます。

    addBoolParam( L"Enable", getEnabled, setEnabled);
  • m_lValue

    このロング型の値は教育目的のためだけに存在するものです。フレームフィルタ変数をどのようにして追加、エクスポートするかを説明しています。インポート/エクスポートメソッド、エクスポートされたパラメータリストへの変数の挿入のためのコードがウィザードによって生成されます。

    ウィザードによってプロパティダイアログが作成されているのであれば(下記参照)、これら2つの変数はこのダイアログ内で変更できます。フレームフィルタパラメータウィザードプロジェクトウィザード>フレームフィルタパラメータウィザードを使ってフレームフィルタクラスに新しいプロパティ変数を追加することができます。

使い方

フレームフィルタクラスウィザードはアプリケーションプロジェクトでのみ使用できます。したがってIC Imaging Control アプリケーションを最初に作成しておく必要があります。ダイアログアプリケーションウィザードプロジェクトウィザード>ダイアログアプリケーションウィザードをご使用ください。

Visual Studioでクラスビューを開きます。 そこでアプリケーション名のところ(ツリー上部のルート部分)を右クリックします。コンテキストメニューにおいて追加... -> クラスの追加....と選択するとクラスの選択画面が表示されます。

IC Frame Filter Classのアイコンをダブルクリックします。そうするとフレームフィルタクラスのプロパティが表示されます。

各入力フィールドの解説

  • Class name

    クラス名を表しています。例:CMyFilter

  • .h file

    クラスのヘッダファイル名です。クラスウィザードによって自動的に決定されますが、変更することは可能です。

  • .cpp file

    クラスのcpp(ソース)ファイル名です。
    クラスウィザードによって自動的に決定されますが、変更することは可能です。

  • Filter name

    使用されるフィルタ名です。アプリケーション内のフィルタリストに挿入されていることが前提となります。
    こちらプログラマーズガイド>フィルタモジュールの作成でサンプルのソースコードを参照していただけます。

  • Transform filter / Update filter

    これらラジオボタンは新規作成されたフレームフィルタがtransformフィルタかupdateフィルタかを決定します。
    フィルタによってビデオフォーマットやフレームのカラーフォーマットが変更される場合にはtransformフィルタが使用されます。メモリーに新しいフレームが作成され、そこにソースフレームのデータがコピーされます。
    updateフィルタは現在のフレームに直接変更を行います。

  • Property dialog

    このボックスにチェックを入れた場合、ウィザードがフレームフィルタクラス用のプロパティダイアログを作成します。これによってパラメータの調整を行うことができます。

  • Notify at start and stop live video

    このボックスにチェックを入れた場合、フレームフィルタクラスウィザードがメソッドを挿入します。
    それらはstartLiveクラスライブラリリファレンス>クラス>Grabber>Grabber::startLive MethodstopLiveクラスライブラリリファレンス>クラス>Grabber>Grabber::topLive Methodの呼び出し時にコールされるもので、notifyStartクラスライブラリリファレンス>クラス>FrameFilterImpl>FrameFilterImpl::notifyStart Method , notifyStopクラスライブラリリファレンス>クラス>FrameFilterImpl>FrameFilterImpl::notifyStop Methodという名前です。ブーリアンアトリビュート 'm_bLiveVideoRunning' を新たにクラスへ追加することもできます。メソッドは以下のようになります。

    //////////////////////////////////////////////////////////////////////////
    // このメソッドはライブ画像の開始とともにframeworkより呼び出されます。
    //////////////////////////////////////////////////////////////////////////
    void CMyFilter::notifyStart( const FrameTypeInfo& in_type, const FrameTypeInfo& out_type )
    {
      m_bLiveVideoRunning = true;
    }
    
    //////////////////////////////////////////////////////////////////////////
    // このメソッドはライブ画像の停止とともにframeworkより呼び出されます。
    //////////////////////////////////////////////////////////////////////////
    void CMyFilter::notifyStop()
    {
      m_bLiveVideoRunning = false;
    }

ここまでの手順を全て終えましたら、Finishボタンを押してください。ウィザードがクラスを作成します。