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);
}