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

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

Rotate Flip フィルタの使用方法

Rotate Flipフィルタをアプリケーションでロードするには以下のコードを使用します。

[VB.NET]
Dim RotateFlipFilter As FrameFilter
RotateFlipFilter = IcImagingControl1.FrameFilterCreate("Rotate Flip", "")

If RotateFlipFilter Is Nothing Then
     MsgBox("Failed to create RotateFlipFilter")
Else
     IcImagingControl1.DeviceFrameFilters.Add(RotateFlipFilter)
End If
[C#]
FrameFilter RotateFlipFilter;
RotateFlipFilter = ICImagingControl1.FrameFilterCreate("Rotate Flip", "");

if ( RotateFlipFilter == null )
     MessageBox.Show("Failed to create RotateFlipFilter");
else
     ICImagingControl1.DeviceFrameFilters.Add(RotateFlipFilter);

パラメータ

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

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

プロパティダイアログ

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

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

アプリケーションでパラメータの設定をする場合、以下のソースコードを利用することで可能となります。
[VB.NET]
Dim angle As Integer
Dim newAngle As Integer
Dim flipVertical As Boolean
Dim flipHorizontal As Boolean

' 現在のパラメータ設定の呼び出し
angle = RotateFlipFilter.GetIntParameter("Rotation Angle")
flipVertical = RotateFlipFilter.GetBoolParameter("Flip V")
flipHorizontal = RotateFlipFilter.GetBoolParameter("Flip H")

' パラメータの変更
newAngle = 90 '  0, 90, 180 270 の値のみ設定可能です。

' 回転角度が 90、270 の場合、画像の大きさが変わってしまうため、
' 新しい値はライブ画像表示が停止中の場合のみ設定が可能です。
' ライブ表示中の場合にはエラーとなります。
If Math.Abs(angle - newAngle) = 90 Or Math.Abs(angle - newAngle) = 270 Then
     If Not IcImagingControl1.LiveVideoRunning Then
        RotateFlipFilter.SetIntParameter("Rotation Angle", newAngle)
     End If
Else
     RotateFlipFilter.SetIntParameter("Rotation Angle", newAngle)
End If

  ' 反転パラメータは画像の大きさに変化は及ぼさないので
  ' ライブ画像の表示中でも変更は可能です。
flipVertical = True
flipHorizontal = True
RotateFlipFilter.SetBoolParameter("Flip V", flipVertical)
RotateFlipFilter.SetBoolParameter("Flip H", flipHorizontal)
[C#]
// 現在のパラメータ設定の呼び出し
int angle = RotateFlipFilter.GetIntParameter("Rotation Angle");
bool flipVertical = RotateFlipFilter.GetBoolParameter("Flip V");
bool flipHorizontal = RotateFlipFilter.GetBoolParameter("Flip H");

// パラメータの変更
int newAngle = 90; //  0, 90, 180 270 の値のみ設定可能です。

// 回転角度が 90、270 の場合、画像の大きさが変わってしまうため、
// 新しい値はライブ画像表示が停止中の場合のみ設定が可能です。
// ライブ表示中の場合にはエラーとなります
if ( Math.Abs(angle - newAngle) == 90 || Math.Abs(angle - newAngle) == 270 )
{
     if ( !ICImagingControl1.LiveVideoRunning )
     {
         RotateFlipFilter.SetIntParameter("Rotation Angle", newAngle);
     }
}
else
{
     RotateFlipFilter.SetIntParameter("Rotation Angle", newAngle);
}

// 反転パラメータは画像の大きさに変化は及ぼさないので
// ライブ画像の表示中でも変更は可能です。
flipVertical = true;
flipHorizontal = true;
RotateFlipFilter.SetBoolParameter("Flip V", flipVertical);
RotateFlipFilter.SetBoolParameter("Flip H", flipHorizontal);