静止画ファイルの連番保存
概要
イメージデータストリームからイメージフレームを連続して静止画ファイルとして保存していく方法を示しています。
サンプルプログラム
利用した開発環境 | Visual Studio™ 2019 |
---|---|
SDK | IC Imaging Control 3.5(Python, C#, VB.NET) |
デバイスドライバ | Cam33U_setup,gigecam_setup,usbcam,AFU420_setup,usb2pro_drv |
デバイス | TISカメラ全般(MIPI CSI-2&FPD-Link IIIカメラを除く) |
サンプル(C#) | save_Image_Sequence_cs_3.5.zip |
サンプル(VB.NET) | ー |
exeファイル アプリケーション |
ー |
別途ファイル | ー |
関連参照URL | ー |
サンプルツールの外観
private void Form1_Load(object sender, System.EventArgs e)
{
icImagingControl1.ShowDeviceSettingsDialog();
if( icImagingControl1.DeviceValid )
{
icImagingControl1.Sink = new TIS.Imaging.FrameSnapSink();
icImagingControl1.LiveStart();
}
else
{
Close();
}
}
ここでは連続した静止画をストレージに書き出す方法を示します。
デバイス選択のダイアログ(.ShowDeviceSettingsDialog)をコールして使用するビデオキャプチャデバイスを選択します。正しいデバイスが選択されれば、.LiveStartによりライブ表示を開始します。
その際にビデオストリームからオンデマンドでフレームを取得するために使用できるSinkタイプFrameSnapSinkクラスを定義します。
private void btnSaveNextImage_Click(object sender, System.EventArgs e)
{
TIS.Imaging.FrameSnapSink snapSink = icImagingControl1.Sink as TIS.Imaging.FrameSnapSink;
TIS.Imaging.IFrameQueueBuffer frm = snapSink.SnapSingle(TimeSpan.FromSeconds(5));
string fileName = "Image " + imageNumber + ".bmp";
TIS.Imaging.FrameExtensions.SaveAsBitmap(frm, fileName);
imageNumber += 1;
}
ユーザーが[Save Next Image]ボタンをクリックすると、アプリケーションがFrameSnapSinkを使って画像データにアクセスします。SnapSingleではカメラデバイスなどから新しい画像が取得されるのを待ち、取得されたら IFrameQueueBufferインターフェースに取得された画像が入ります。その後、.SaveAsBitmapによりデータはBMPファイルに書き出されます。ファイル番号を増やし、次のボタンクリックを待ちます。