Rotate Flip(回転・反転) フィルタ

Rotate Flipフィルタは画像データの反転や90度ごとの回転をさせることが可能です。

Rotate Flipフィルタの使い方

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

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

パラメータ

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

Rotation Angle このパラメータは回転の角度を設定します。
設定可能な角度は以下の通り
  • 90°
  • 180°
  • 270°
注:ライブ画像表示中はビデオフォーマットを変えることはできないため180°単位でしか設定はできません。
Flip V このパラメータは垂直軸での画像の反転するかどうかを決定します。このパラメータはブーリアン型のため、有効な値はtruefalseとなります。パラメータの設定はライブ画像表示中かどうかに関わらず可能です。
Flip H このパラメータは水平軸での画像の反転するかどうかを決定します。 同じく有効な値はtruefalseとなります。またパラメータの設定もライブ画像表示中かどうかに関わらず可能です。

プロパティダイアログ

回転角度、反転モードの設定は以下のプロパティダイアログにて可能です。

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

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

long lAngle = 0;
long lNewAngle = 0;
bool bFlipVertical = false;
bool bFlipHorizontal = false;

//現在のパラメータ設定の取得
pFilter->getParameter( "Rotation Angle", lAngle );
pFilter->getParameter( "Flip V", bFlipVertical );
pFilter->getParameter( "Flip H", bFlipHorizontal );

//パラメータの変更
lNewAngle = 90; // 0, 90, 180 270 の値のみ設定可能です。
// 回転角度が 90、270 の場合、ビデオフォーマットが変わってしまうため
// 新しい値はライブ画像表示が停止中の場合のみ設定が可能です。
// ライブ表示中であった場合にはsetParameter()からエラーが返されます。
if( abs(lAngle - lNewAngle) == 90 || abs(lAngle - lNewAngle ) == 270 )
{
  if( m_Grabber.isLive() == false )
  {
    pFilter->setParameter( "Rotation Angle", lAngle );
  }
}
else
{
  pFilter->setParameter( "Rotation Angle", lAngle );
}

// 反転パラメータはビデオフォーマットに変化は及ぼさないので
// ライブ画像の表示中でも変更は可能です。
bFlipVertical = true;
bFlipHorizontal = true;
pFilter->setParameter( "Flip V", bFlipVertical );
pFilter->setParameter( "Flip H", bFlipHorizontal );