ROI (関心領域)フィルタ

ROIフィルタはフレームのある部分だけを切りだして表示するようにします。

ROI の使用方法

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

[VB.NET]
Dim ROIFilter As FrameFilter
ROIFilter = IcImagingControl1.FrameFilterCreate("ROI", "")

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

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

パラメータ

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

Left これはソースフレームの一番左の列における、ROIの始まりのポイントを指定するための値です。ソースフレームに対して水平方向にROIを移動させるために使われます。 ライブ画像表示中、停止中に関わらず変更が可能です。
Top これはソースフレームの一番上の行における、ROIの始まりのポイントを指定するための値です。ソースフレームに対して垂直方向にROIを移動させるために使われます。 ライブ画像表示中、停止中に関わらず変更が可能です。
Width これはROIの幅を指定するための値です。ライブ画像表示中には変更できません。
Height これはROIの高さを指定するための値です。ライブ画像表示中には変更できません。

プロパティダイアログ

ROIの位置や大きさは以下のプロパティダイアログで設定が可能です。

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

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

[VB.NET]
Dim left As Integer
Dim top As Integer
Dim height As Integer
Dim width As Integer

' 現在のROIの呼び出し
left = ROIFilter.GetIntParameter("Left")
top = ROIFilter.GetIntParameter("Top")
height = ROIFilter.GetIntParameter("Height")
width = ROIFilter.GetIntParameter("Width")

' 新しいROIの設定
left = 100
top = 50
' 画像サイズに変更はないため、ROIの位置の設定はにライブ画像表示中、
' 停止中に関わらず変更が可能です。
ROIFilter.SetIntParameter("Left", left)
ROIFilter.SetIntParameter("Top", top)

If Not IcImagingControl1.LiveVideoRunning Then
     ' 幅と高さの変更はライブ画像停止中のみ可能となります。
     ' ライブ画像表示中の場合にはsetParameter();によってエラーが返されます。
     height = 120
     width = 180
     ROIFilter.SetIntParameter("Height", height)
     ROIFilter.SetIntParameter("Width", width)
End If
[C#]
// 現在のROIの呼び出し
int left = ROIFilter.GetIntParameter("Left");
int top = ROIFilter.GetIntParameter("Top");
int height = ROIFilter.GetIntParameter("Height");
int width = ROIFilter.GetIntParameter("Width");

// 新しいROIの設定
left = 100;
top = 50;

// 画像サイズに変更はないため、ROIの位置の設定はにライブ画像表示中、
// 停止中に関わらず変更が可能です。
ROIFilter.SetIntParameter("Left", left);
ROIFilter.SetIntParameter("Top", top);

if ( !ICImagingControl1.LiveVideoRunning )
{
     // 幅と高さの変更はライブ画像停止中のみ可能となります。
     // ライブ画像表示中の場合にはsetParameter();によってエラーが返されます。
     height = 120;
     width = 180;
     ROIFilter.SetIntParameter("Height", height);
     ROIFilter.SetIntParameter("Width", width);
}