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 |
このパラメータは回転の角度を設定します。 設定可能な角度は以下の通り
|
---|---|
Flip V | このパラメータは垂直軸での画像の反転するかどうかを決定します。このパラメータはブーリアン型のため、有効な値はtrueかfalseとなります。 パラメータの設定はライブ画像表示中かどうかに関わらず可能です。 |
Flip H | このパラメータは水平軸での画像の反転するかどうかを決定します。 同じく有効な値はtrueかfalseとなります。またパラメータの設定もライブ画像表示中かどうかに関わらず可能です。 |
プロパティダイアログ
回転角度、反転モードの設定は以下のプロパティダイアログにて可能です。
プログラムからパラメ-タにアクセスする
アプリケーションでパラメータの設定をする場合、以下のソースコードを利用することで可能となります。
[VB.NET]
[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);