ICImagingControl.LivePrepare Method
画像ストリームを構築する準備のためのメソッドです。デバイスをディスプレイ、シンクと接続し、フレームフィルタ、オーバーレイの挿入を行います。
構文
Public Sub LivePrepare()
[C#]public void LivePrepare();
戻り値
画像ストリームの準備が完了できなかった場合、例外を投げます。
備考
LivePrepareは画像ストリームの準備を行いますがライブ表示を開始したり使用するバス(FireWire or USB)に帯域を割り当てることはしません。よって複数の画像取り込みデバイスを使用する環境においてこのメソッドは適していると言えます。事前にLivePrepareを呼び出してからLiveStartクラスライブラリリファレンス>クラス>ICImagingControl>ICImagingControl.LiveStart Methodをコールしライブ表示を始めると、それを行わなかった場合よりも格段に早くスタートすることが可能です。
準備が完了し、開始したライブ画像ストリームはLiveSuspendクラスライブラリリファレンス>クラス>ICImagingControl>ICImagingControl.LiveSuspend Methodをコールすることによって再び待機状態に戻すことができます。
ICImagingControl.LiveStopクラスライブラリリファレンス>クラス>ICImagingControl>ICImagingControl.LiveStop Methodをコールした場合、準備したライブ画像ストリームはクリアされます。
LivePrepareを呼び出した後は、画像ストリームのレイアウトを変える可能性のある動作はできなくなります。
以下の動作がそれらにあたります。
- VideoFormatクラスライブラリリファレンス>クラス>VideoFormat
- DeviceFrameRateクラスライブラリリファレンス>クラス>ICImagingControl>ICImagingControl.DeviceFrameRate Property
- VideoNormクラスライブラリリファレンス>クラス>VideoNorm
- Sinkクラスライブラリリファレンス>クラス>ICImagingControl>ICImagingControl.Sink Property
- OverlayBitmapクラスライブラリリファレンス>クラス>OverlayBitmap
- DeviceTriggerクラスライブラリリファレンス>クラス>ICImagingControl>ICImagingControl.DeviceTrigger Property
- DeviceFlipHorizontalクラスライブラリリファレンス>クラス>ICImagingControl>ICImagingControl.DeviceFlipHorizontal Property
- DeviceFlipVerticalクラスライブラリリファレンス>クラス>ICImagingControl>ICImagingControl.DeviceFlipVertical Property
- ICImagingControl.DeviceFrameFiltersクラスライブラリリファレンス>クラス>ICImagingControl>ICImagingControl.DeviceFrameFilters Property
- ICImagingControl.DisplayFrameFiltersクラスライブラリリファレンス>クラス>ICImagingControl>ICImagingControl.DisplayFrameFilters Property
インフォメーション
IC Imaging Control 3.1より導入
構文
この例はどのようにしてIC Imaging Controlsを配列の中で使用し、複数の画像取り込みデバイスを有効な状態にするかを紹介しています。デバイスが有効になれば即座に画像ストリームの準備が整います。
この処理ループ中でMemorySnapImageクラスライブラリリファレンス>クラス>ICImagingControl>ICImagingControl.MemorySnapImage Methodは各IC Imaging Controlにおいて連続して実行されています。このループは比較的早く動作していますが、これは取り込む画像ストリームの準備がすでに整っている為です。
' 各画像取り込みデバイス用にICImagingControlインスタンスを作成する。
Dim CameraCount As Integer = 2 Dim IC(CameraCount) As TIS.Imaging.ICImagingControl
For Camera As Integer = 0 To CameraCount - 1
IC(Camera) = New ICImagingControl()
IC(Camera).ShowDeviceSettingsDialog()
Try
'画像ストリームの準備を行う。
IC(Camera).LivePrepare()
Catch Ex As ICException
MessageBox.Show(Ex.Message)
End Try
Next
' 何かの処理を行います。e.g. 画像を取得する
' このループは各カメラで画像処理を10回ずつ、順次行っていきます。
For i As Integer = 0 To 10
For Camera As Integer = 0 To CameraCount - 1
If IC(Camera).IsLivePrepared = True Then
Try
' タイムアウトを1000ミリ秒に設定。
IC(Camera).MemorySnapImage(1000)
' PictureBox内に取得した画像を表示させる。
PictureBox1.Image = IC(Camera).ImageActiveBuffer.Bitmap
PictureBox1.Update()
Catch Ex As ICException
MessageBox.Show(Ex.Message)
End Try
End If
Next
Next
' アプリケーション終了後は準備したライブ画像ストリームが停止するようにする。
For Camera As Integer = 0 To CameraCount - 1
IC(Camera).LiveStop()
Next
[C#]// 各画像取り込みデバイス用にICImagingControlインスタンスを作成する。
int CameraCount = 2;
TIS.Imaging.ICImagingControl[] IC = new ICImagingControl[CameraCount];
// 画像取り込みデバイスをオープンにして、ライブ画像ストリームの準備を整えます。
for (int Camera = 0; Camera < CameraCount; Camera++)
{
IC[Camera] = new ICImagingControl();
IC[Camera].ShowDeviceSettingsDialog();
try
{
// 画像ストリームの準備を行う。
IC[Camera].LivePrepare();
}
catch (ICException Ex)
{
MessageBox.Show(Ex.Message, "LivePrepare Error");
}
}
// 何かの処理を行います。e.g. 画像を取得する
// このループは各カメラで画像処理を10回ずつ、順次行っていきます。
for (int i = 0; i < 10; i++)
{
for (int Camera = 0; Camera < CameraCount; Camera++)
{
if (IC[Camera].IsLivePrepared)
{
try
{
IC[Camera].MemorySnapImage(1000);
// PictureBox内に取得した画像を表示させる。
pictureBox1.Image = IC[Camera].ImageActiveBuffer.Bitmap;
pictureBox1.Update();
}
catch (ICException Ex)
{
MessageBox.Show(Ex.Message, "MemorySnapImage Error");
}
}
}
}
// アプリケーション終了後は準備したライブ画像ストリームが停止するようにする。
for (int Camera = 0; Camera < CameraCount; Camera++)
{
IC[Camera].LiveStop();
}
関連項目
ICImagingControlクラスライブラリリファレンス>クラス>ICImagingControl, ICImagingControl.LiveSuspendクラスライブラリリファレンス>クラス>ICImagingControl>ICImagingControl.LiveSuspend, ICImagingControl.LiveStartクラスライブラリリファレンス>クラス>ICImagingControl>ICImagingControl.LiveStart Method, ICImagingControl.LiveStopクラスライブラリリファレンス>クラス>ICImagingControl>ICImagingControl.LiveStop Method, ICImagingControl.LiveVideoRunningクラスライブラリリファレンス>クラス>ICImagingControl>ICImagingControl.LiveVideoRunning Property, ICImagingControl.IsLivePreparedクラスライブラリリファレンス>クラス>ICImagingControl>ICImagingControl.IsLivePrepared Property