デバイスプロパティのハードコーディング
概要
カメラの各種設定を、プロパティ画面のタブ構成に沿って整理しています。これにより、プロパティ画面での操作をハードコーディングによって再現できるようになります。
サンプルプログラム
| 利用した開発環境 | Visual Studio™ 2022 |
|---|---|
| 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#) | CameraDeviceFormatFpsProperty_cs_3.5.zip |
| サンプル(VB.NET) | ー |
| exeファイル アプリケーション |
ー |
| 別途ファイル | ー |
| 関連参照URL | ー |
デバイスの設定、ROI・ビニング
// デバイスを指定
icImagingControl1.Device = "DFK 33UR0234";
// ROIやビニングを含むビデオフォーマットの設定
icImagingControl1.VideoFormat = "RGB32 (960x600) [binning 2x]"
// フレームレートの設定
icImagingControl1.DeviceFrameRate = 30.0f;
初めに「どのカメラを使うか(デバイス指定)」「どのような映像を取得するか(解像度・カラーフォーマットの設定)」「どのくらいの速度で撮影するか(フレームレート)」という3つの基本設定を行います。プログラム上でこれらをハードコーディング(コードに直接記述)することで、毎回決まった条件でカメラを初期化・起動できるようになります。
まず最初にicImagingControl1.Deviceで使用するカメラの型番を指定します。
次にVideoFormatプロパティを使って、解像度(ROI)やカラーフォーマット(RGB32など)、スキッピング(画素を間引く手法)やビニング(画素を間引いて感度を上げる手法)を指定します。
最後にDeviceFrameRateにより、1秒間に何枚の画像を取得するか(フレームレート)を設定します。
このように、Device・VideoFormat・FrameRateの3点をコードで固定しておくことで常に同じ条件でカメラから映像を出力することができます。詳細については、以下のページをご参照ください。
VideoFormat・ビニング/スキッピング・ROIの設定
IC Imaging Control3.5(C#/VB.NET) サンプルプログラム
サンプルツールの外観

下記では、各プロパティ画面の設定内容をどのようにハードコーディングで再現するかを、タブごとの項目に分けて記載しています。
[StartUp]タブ
プロパティの設定値をカメラに保存あるいはカメラのプロパティを初期状態にする。

//StartUp Behavior Save Current State
icImagingControl1.VCDPropertyItems.Find<VCDButtonProperty>(new Guid("{8E972004-3B94-4AA4-A899-65F6A1432713}"), new Guid("{8ABB2078-34BA-4B7C-B033-D035E12D9DA6}")).Push();
//Restore Factory Default
icImagingControl1.VCDPropertyItems.Find<VCDButtonProperty>(new Guid("{8E972004-3B94-4AA4-A899-65F6A1432713}"), new Guid("{D6800B86-E461-45B7-88F8-2115113FE728}")).Push();
//Status
int status=icImagingControl1.VCDPropertyItems.Find<VCDButtonProperty>(new Guid("{8E972004-3B94-4AA4-A899-65F6A1432713}"), new Guid("{CFA63B66-55AF-4ABC-B14C-6F460AB3C4F7}")).Value;
[Color]タブ
明るさ、コントラスト、ゲイン、露出の自動/手動切り替えおよび値の調整を行う。

//Hue
icImagingControl1.VCDPropertyItems.Find<VCDRangeProperty>(VCDGUIDs.VCDID_Hue, VCDGUIDs.VCDElement_Value).Value = 0;
int hue = icImagingControl1.VCDPropertyItems.Find<VCDRangeProperty>(VCDGUIDs.VCDID_Hue, VCDGUIDs.VCDElement_Value).Value;
// Saturation
icImagingControl1.VCDPropertyItems.Find<VCDAbsoluteValueProperty>(VCDGUIDs.VCDID_Saturation, VCDGUIDs.VCDElement_Value).Value =100.0f;
double saturation = icImagingControl1.VCDPropertyItems.Find<VCDAbsoluteValueProperty>(VCDGUIDs.VCDID_Saturation, VCDGUIDs.VCDElement_Value).Value;
//white balance OnePush
icImagingControl1.VCDPropertyItems.Find<VCDButtonProperty>(VCDGUIDs.VCDID_WhiteBalance, VCDGUIDs.VCDElement_OnePush).Push();
//white balance Auto
icImagingControl1.VCDPropertyItems.Find<VCDSwitchProperty>(VCDGUIDs.VCDID_WhiteBalance, VCDGUIDs.VCDElement_Auto).Switch = false;
bool whiteBalanceAuto = icImagingControl1.VCDPropertyItems.Find<VCDSwitchProperty>(VCDGUIDs.VCDID_WhiteBalance, VCDGUIDs.VCDElement_Auto).Switch;
//white balance Mode 0:Gray World, 1:temperature
icImagingControl1.VCDPropertyItems.Find<VCDMapStringsProperty>(VCDGUIDs.VCDID_WhiteBalance, VCDGUIDs.VCDElement_WhiteBalanceMode).Value = 0;
int whiteBalanceMode = icImagingControl1.VCDPropertyItems.Find<VCDMapStringsProperty>(VCDGUIDs.VCDID_WhiteBalance, VCDGUIDs.VCDElement_WhiteBalanceMode).Value;
//white balance Preset Mode 0:Any, 1:Auto Warm White,2:Auto Cool White,3:Auto Daylight,4:Auto Deep Shade
icImagingControl1.VCDPropertyItems.Find<VCDMapStringsProperty>(VCDGUIDs.VCDID_WhiteBalance, VCDGUIDs.VCDElement_Auto_Preset).Value = 0;
int whiteBalancePreset = icImagingControl1.VCDPropertyItems.Find<VCDMapStringsProperty>(VCDGUIDs.VCDID_WhiteBalance, VCDGUIDs.VCDElement_Auto_Preset).Value;
//white balance temperature Preset Mode 0:Sodium - Vapor Lamp,1:Warm Light, 2:Halogen Light, 3:Neutral White, 4:Cool white Fluorescent Light, 5:Cool White/ Daylight(CFL), 6:Daylight, 7:Cool White LED, 8:Blue Sky
icImagingControl1.VCDPropertyItems.Find<VCDMapStringsProperty>(VCDGUIDs.VCDID_WhiteBalance, VCDGUIDs.VCDElement_Auto_TemperaturePreset).Value = 0;
int whiteBalanceTempPreset = icImagingControl1.VCDPropertyItems.Find<VCDMapStringsProperty>(VCDGUIDs.VCDID_WhiteBalance, VCDGUIDs.VCDElement_Auto_TemperaturePreset).Value;
//white balance temperature
icImagingControl1.VCDPropertyItems.Find<VCDRangeProperty>(VCDGUIDs.VCDID_WhiteBalance, VCDGUIDs.VCDElement_Temperature).Value =7500;
int whiteBalanceTemp = icImagingControl1.VCDPropertyItems.Find<VCDRangeProperty>(VCDGUIDs.VCDID_WhiteBalance, VCDGUIDs.VCDElement_Temperature).Value;
// white balance Red
icImagingControl1.VCDPropertyItems.Find<VCDAbsoluteValueProperty>(VCDGUIDs.VCDID_WhiteBalance, VCDGUIDs.VCDElement_WhiteBalanceRed).Value = 2.1f;
double whiteBalanceRed = icImagingControl1.VCDPropertyItems.Find<VCDAbsoluteValueProperty>(VCDGUIDs.VCDID_WhiteBalance, VCDGUIDs.VCDElement_WhiteBalanceRed).Value;
// white balance Green
icImagingControl1.VCDPropertyItems.Find<VCDAbsoluteValueProperty>(VCDGUIDs.VCDID_WhiteBalance, VCDGUIDs.VCDElement_WhiteBalanceGreen).Value =2.2f;
double whiteBalanceGreen = icImagingControl1.VCDPropertyItems.Find<VCDAbsoluteValueProperty>(VCDGUIDs.VCDID_WhiteBalance, VCDGUIDs.VCDElement_WhiteBalanceGreen).Value;
// white balance Blue
icImagingControl1.VCDPropertyItems.Find<VCDAbsoluteValueProperty>(VCDGUIDs.VCDID_WhiteBalance, VCDGUIDs.VCDElement_WhiteBalanceBlue).Value = 1.3f;
double whiteBalanceBlue = icImagingControl1.VCDPropertyItems.Find<VCDAbsoluteValueProperty>(VCDGUIDs.VCDID_WhiteBalance, VCDGUIDs.VCDElement_WhiteBalanceBlue).Value;
[Exposure]タブ
シャープネス、ガンマ、ノイズ除去、反転処理(水平・垂直)の有効/無効を制御。

//Brightness
icImagingControl1.VCDPropertyItems.Find<VCDRangeProperty>(VCDGUIDs.VCDID_Brightness, VCDGUIDs.VCDElement_Value).Value = 42;
int brightness = icImagingControl1.VCDPropertyItems.Find<VCDRangeProperty>(VCDGUIDs.VCDID_Brightness, VCDGUIDs.VCDElement_Value).Value;
//Contrast
icImagingControl1.VCDPropertyItems.Find<VCDRangeProperty>(VCDGUIDs.VCDID_Contrast, VCDGUIDs.VCDElement_Value).Value = 0;
int contrast = icImagingControl1.VCDPropertyItems.Find<VCDRangeProperty>(VCDGUIDs.VCDID_Contrast, VCDGUIDs.VCDElement_Value).Value;
// gain Auto
icImagingControl1.VCDPropertyItems.Find<VCDSwitchProperty>(VCDGUIDs.VCDID_Gain, VCDGUIDs.VCDElement_Auto).Switch = false;
bool gainAuto = icImagingControl1.VCDPropertyItems.Find<VCDSwitchProperty>(VCDGUIDs.VCDID_Gain, VCDGUIDs.VCDElement_Auto).Switch;
// gain
icImagingControl1.VCDPropertyItems.Find<VCDAbsoluteValueProperty>(VCDGUIDs.VCDID_Gain, VCDGUIDs.VCDElement_Value).Value = 13.0f;
double gain = icImagingControl1.VCDPropertyItems.Find<VCDAbsoluteValueProperty>(VCDGUIDs.VCDID_Gain, VCDGUIDs.VCDElement_Value).Value;
// gain AutoReference
icImagingControl1.VCDPropertyItems.Find<VCDAbsoluteValueProperty>(VCDGUIDs.VCDID_Gain, VCDGUIDs.VCDElement_AutoMaxValue).Value = 33.0f;
double gainAutoMax = icImagingControl1.VCDPropertyItems.Find<VCDAbsoluteValueProperty>(VCDGUIDs.VCDID_Gain, VCDGUIDs.VCDElement_AutoMaxValue).Value;
// exposure Auto
icImagingControl1.VCDPropertyItems.Find<VCDSwitchProperty>(VCDGUIDs.VCDID_Exposure, VCDGUIDs.VCDElement_Auto).Switch = false;
bool exposureAuto = icImagingControl1.VCDPropertyItems.Find<VCDSwitchProperty>(VCDGUIDs.VCDID_Exposure, VCDGUIDs.VCDElement_Auto).Switch;
// exposure
icImagingControl1.VCDPropertyItems.Find<VCDAbsoluteValueProperty>(VCDGUIDs.VCDID_Exposure, VCDGUIDs.VCDElement_Value).Value = 0.033333;
double exposure = icImagingControl1.VCDPropertyItems.Find<VCDAbsoluteValueProperty>(VCDGUIDs.VCDID_Exposure, VCDGUIDs.VCDElement_Value).Value;
// exposure AutoReference
icImagingControl1.VCDPropertyItems.Find<VCDRangeProperty>(VCDGUIDs.VCDID_Exposure, VCDGUIDs.VCDElement_AutoReference).Value = 128;
int exposureAutoRef = icImagingControl1.VCDPropertyItems.Find<VCDRangeProperty>(VCDGUIDs.VCDID_Exposure, VCDGUIDs.VCDElement_AutoReference).Value;
// exposure AutoMaxValue
icImagingControl1.VCDPropertyItems.Find<VCDAbsoluteValueProperty>(VCDGUIDs.VCDID_Exposure, VCDGUIDs.VCDElement_AutoMaxValue).Value = 0.250000f;
double exposureAutoMax = icImagingControl1.VCDPropertyItems.Find<VCDAbsoluteValueProperty>(VCDGUIDs.VCDID_Exposure, VCDGUIDs.VCDElement_AutoMaxValue).Value;
//highlight Reduction
icImagingControl1.VCDPropertyItems.Find<VCDSwitchProperty>(new Guid("{546541AD-C815-4D82-AFA9-9D59AF9F399E}"), VCDGUIDs.VCDElement_Value).Switch = false;
bool highlightReduction = icImagingControl1.VCDPropertyItems.Find<VCDSwitchProperty>(new Guid("{546541AD-C815-4D82-AFA9-9D59AF9F399E}"), VCDGUIDs.VCDElement_Value).Switch;
[Image]タブ
ホワイトバランス、彩度、色温度など色調整に関連するプロパティを設定。

// Sharpness
icImagingControl1.VCDPropertyItems.Find<VCDRangeProperty>(VCDGUIDs.VCDID_Sharpness, VCDGUIDs.VCDElement_Value).Value = 0;
int sharpness = icImagingControl1.VCDPropertyItems.Find<VCDRangeProperty>(VCDGUIDs.VCDID_Sharpness, VCDGUIDs.VCDElement_Value).Value;
//gamma
icImagingControl1.VCDPropertyItems.Find<VCDRangeProperty>(VCDGUIDs.VCDID_Gamma, VCDGUIDs.VCDElement_Value).Value = 100;
int gamma = icImagingControl1.VCDPropertyItems.Find<VCDRangeProperty>(VCDGUIDs.VCDID_Gamma, VCDGUIDs.VCDElement_Value).Value;
// denoise
icImagingControl1.VCDPropertyItems.Find<VCDRangeProperty>(VCDGUIDs.VCDID_Denoise, VCDGUIDs.VCDElement_Value).Value = 0;
int denoise = icImagingControl1.VCDPropertyItems.Find<VCDRangeProperty>(VCDGUIDs.VCDID_Denoise, VCDGUIDs.VCDElement_Value).Value;
// flip horizontal
icImagingControl1.VCDPropertyItems.Find<VCDSwitchProperty>(VCDGUIDs.VCDID_FlipHorizontal, VCDGUIDs.VCDElement_Value).Switch = false;
bool flipH = icImagingControl1.VCDPropertyItems.Find<VCDSwitchProperty>(VCDGUIDs.VCDID_FlipHorizontal, VCDGUIDs.VCDElement_Value).Switch;
// flip vertical
icImagingControl1.VCDPropertyItems.Find<VCDSwitchProperty>(VCDGUIDs.VCDID_FlipVertical, VCDGUIDs.VCDElement_Value).Switch = false;
bool flipVertical = icImagingControl1.VCDPropertyItems.Find<VCDSwitchProperty>(VCDGUIDs.VCDID_FlipVertical, VCDGUIDs.VCDElement_Value).Switch;
[Special]タブ
トリガー設定、GPIOの読み書き、ストロボ制御などの設定。

// TriggerMode
icImagingControl1.VCDPropertyItems.Find<VCDSwitchProperty>(VCDGUIDs.VCDID_TriggerMode, VCDGUIDs.VCDElement_Value).Switch = false;
bool triggerMode = icImagingControl1.VCDPropertyItems.Find<VCDSwitchProperty>(VCDGUIDs.VCDID_TriggerMode, VCDGUIDs.VCDElement_Value).Switch;
// TriggerMode SoftwareTrigger
icImagingControl1.VCDPropertyItems.Find<VCDButtonProperty>(VCDGUIDs.VCDID_TriggerMode, VCDGUIDs.VCDElement_SoftwareTrigger).Push();
// TriggerMode TriggerPolarity
icImagingControl1.VCDPropertyItems.Find<VCDSwitchProperty>(VCDGUIDs.VCDID_TriggerMode, VCDGUIDs.VCDElement_TriggerPolarity).Switch = false;
bool triggerPolarity = icImagingControl1.VCDPropertyItems.Find<VCDSwitchProperty>(VCDGUIDs.VCDID_TriggerMode, VCDGUIDs.VCDElement_TriggerPolarity).Switch;
// Trigger delay
icImagingControl1.VCDPropertyItems.Find<VCDAbsoluteValueProperty>(VCDGUIDs.VCDID_TriggerMode, VCDGUIDs.VCDElement_TriggerDelay).Value = 3.2f;
double triggerDelay = icImagingControl1.VCDPropertyItems.Find<VCDAbsoluteValueProperty>(VCDGUIDs.VCDID_TriggerMode, VCDGUIDs.VCDElement_TriggerDelay).Value;
// Trigger debounce time
icImagingControl1.VCDPropertyItems.Find<VCDAbsoluteValueProperty>(VCDGUIDs.VCDID_TriggerMode, VCDGUIDs.VCDElement_TriggerDebounceTime).Value = 0.000000f;
double triggerDebounce = icImagingControl1.VCDPropertyItems.Find<VCDAbsoluteValueProperty>(VCDGUIDs.VCDID_TriggerMode, VCDGUIDs.VCDElement_TriggerDebounceTime).Value;
// Trigger mask time
icImagingControl1.VCDPropertyItems.Find<VCDAbsoluteValueProperty>(VCDGUIDs.VCDID_TriggerMode, VCDGUIDs.VCDElement_TriggerMaskTime).Value = 0.000000f;
double triggerMask = icImagingControl1.VCDPropertyItems.Find<VCDAbsoluteValueProperty>(VCDGUIDs.VCDID_TriggerMode, VCDGUIDs.VCDElement_TriggerMaskTime).Value;
// Trigger noise suppression time
icImagingControl1.VCDPropertyItems.Find<VCDAbsoluteValueProperty>(VCDGUIDs.VCDID_TriggerMode, VCDGUIDs.VCDElement_TriggerNoiseSuppressionTime).Value = 0.000000f;
double triggerNoiseSuppresion = icImagingControl1.VCDPropertyItems.Find<VCDAbsoluteValueProperty>(VCDGUIDs.VCDID_TriggerMode, VCDGUIDs.VCDElement_TriggerNoiseSuppressionTime).Value;
// Trigger burst count
icImagingControl1.VCDPropertyItems.Find<VCDRangeProperty>(VCDGUIDs.VCDID_TriggerMode, new Guid("{B4109964-77E4-4AF3-ACA8-45BBAA861B5C}")).Value = 2;
int triggerBurstCount = icImagingControl1.VCDPropertyItems.Find<VCDRangeProperty>(VCDGUIDs.VCDID_TriggerMode, new Guid("{B4109964-77E4-4AF3-ACA8-45BBAA861B5C}")).Value;
// Trigger burst interval
icImagingControl1.VCDPropertyItems.Find<VCDRangeProperty>(VCDGUIDs.VCDID_TriggerMode, new Guid("{A9715AB3-69AE-454D-8DF5-7E06D87C109C}")).Value = 200;
int triggerBurstInterval = icImagingControl1.VCDPropertyItems.Find<VCDRangeProperty>(VCDGUIDs.VCDID_TriggerMode, new Guid("{A9715AB3-69AE-454D-8DF5-7E06D87C109C}")).Value;
// Trigger override mode 0:Off, 1:Readout
int triggerReadout=icImagingControl1.VCDPropertyItems.Find<VCDMapStringsProperty>(VCDGUIDs.VCDID_TriggerMode, new Guid("{7685BF04-C9C9-4AE2-BA69-1278B77F97F6}")).Value ;
// GPIO Input Mode読み取り専用
int gpininputMode =icImagingControl1.VCDPropertyItems.Find<VCDRangeProperty>(VCDGUIDs.VCDID_GPIO, VCDGUIDs.VCDElement_GPIOIn).Value ;
// GPIO Read
icImagingControl1.VCDPropertyItems.Find<VCDButtonProperty>(VCDGUIDs.VCDID_GPIO, VCDGUIDs.VCDElement_GPIORead).Push();
// GPIO Output Mode 読み取り専用
int gpinoutputMode = icImagingControl1.VCDPropertyItems.Find<VCDRangeProperty>(VCDGUIDs.VCDID_GPIO, VCDGUIDs.VCDElement_GPIOOut).Value = 0;
// GPIO Write
icImagingControl1.VCDPropertyItems.Find<VCDButtonProperty>(VCDGUIDs.VCDID_GPIO, VCDGUIDs.VCDElement_GPIOWrite).Push();
//strobe
icImagingControl1.VCDPropertyItems.Find<VCDSwitchProperty>(VCDGUIDs.VCDID_Strobe, VCDGUIDs.VCDElement_Value).Switch = false;
bool strobeEnable = icImagingControl1.VCDPropertyItems.Find<VCDSwitchProperty>(VCDGUIDs.VCDID_Strobe, VCDGUIDs.VCDElement_Value).Switch;
//strobe mode
icImagingControl1.VCDPropertyItems.Find<VCDMapStringsProperty>(VCDGUIDs.VCDID_Strobe, VCDGUIDs.VCDElement_StrobeMode).Value = 0;
int strobeMode = icImagingControl1.VCDPropertyItems.Find<VCDMapStringsProperty>(VCDGUIDs.VCDID_Strobe, VCDGUIDs.VCDElement_StrobeMode).Value;
//strobe polarity
icImagingControl1.VCDPropertyItems.Find<VCDSwitchProperty>(VCDGUIDs.VCDID_Strobe, VCDGUIDs.VCDElement_StrobePolarity).Switch = false;
bool strobePolarity = icImagingControl1.VCDPropertyItems.Find<VCDSwitchProperty>(VCDGUIDs.VCDID_Strobe, VCDGUIDs.VCDElement_StrobePolarity).Switch;
[Color Matrix / Color Correction]タブ
カラーマトリックス補正の各成分(RR, RG, ... BB)を細かく設定可能。

//color correction matrix
icImagingControl1.VCDPropertyItems.Find<VCDSwitchProperty>(new Guid("{7F7E24E3-7162-42EF-BF5D-99A359CB32F2}"), VCDGUIDs.VCDElement_Value).Switch = true;
bool ccmEnable = icImagingControl1.VCDPropertyItems.Find<VCDSwitchProperty>(new Guid("{7F7E24E3-7162-42EF-BF5D-99A359CB32F2}"), VCDGUIDs.VCDElement_Value).Switch;
//RR
icImagingControl1.VCDPropertyItems.Find<VCDAbsoluteValueProperty>(new Guid("{7F7E24E3-7162-42EF-BF5D-99A359CB32F2}"), new Guid("{57480AA0-2883-4C7D-A066-357D07C4527D}")).Value = 1.71f;
double ccmRR = icImagingControl1.VCDPropertyItems.Find<VCDAbsoluteValueProperty>(new Guid("{7F7E24E3-7162-42EF-BF5D-99A359CB32F2}"), new Guid("{57480AA0-2883-4C7D-A066-357D07C4527D}")).Value;
//RG
icImagingControl1.VCDPropertyItems.Find<VCDAbsoluteValueProperty>(new Guid("{7F7E24E3-7162-42EF-BF5D-99A359CB32F2}"), new Guid("{57480AA1-2883-4C7D-A066-357D07C4527D}")).Value = 1.72f;
double ccmRG = icImagingControl1.VCDPropertyItems.Find<VCDAbsoluteValueProperty>(new Guid("{7F7E24E3-7162-42EF-BF5D-99A359CB32F2}"), new Guid("{57480AA1-2883-4C7D-A066-357D07C4527D}")).Value;
//RB
icImagingControl1.VCDPropertyItems.Find<VCDAbsoluteValueProperty>(new Guid("{7F7E24E3-7162-42EF-BF5D-99A359CB32F2}"), new Guid("{57480AA2-2883-4C7D-A066-357D07C4527D}")).Value = 1.73f;
double ccmRB = icImagingControl1.VCDPropertyItems.Find<VCDAbsoluteValueProperty>(new Guid("{7F7E24E3-7162-42EF-BF5D-99A359CB32F2}"), new Guid("{57480AA2-2883-4C7D-A066-357D07C4527D}")).Value;
// GR
icImagingControl1.VCDPropertyItems.Find<VCDAbsoluteValueProperty>(new Guid("{7F7E24E3-7162-42EF-BF5D-99A359CB32F2}"), new Guid("{57480AA3-2883-4C7D-A066-357D07C4527D}")).Value = 1.74f;
double ccmGR = icImagingControl1.VCDPropertyItems.Find<VCDAbsoluteValueProperty>(new Guid("{7F7E24E3-7162-42EF-BF5D-99A359CB32F2}"), new Guid("{57480AA3-2883-4C7D-A066-357D07C4527D}")).Value;
//GG
icImagingControl1.VCDPropertyItems.Find<VCDAbsoluteValueProperty>(new Guid("{7F7E24E3-7162-42EF-BF5D-99A359CB32F2}"), new Guid("{57480AA4-2883-4C7D-A066-357D07C4527D}")).Value = 1.75f;
double ccmGG = icImagingControl1.VCDPropertyItems.Find<VCDAbsoluteValueProperty>(new Guid("{7F7E24E3-7162-42EF-BF5D-99A359CB32F2}"), new Guid("{57480AA4-2883-4C7D-A066-357D07C4527D}")).Value;
// GB
icImagingControl1.VCDPropertyItems.Find<VCDAbsoluteValueProperty>(new Guid("{7F7E24E3-7162-42EF-BF5D-99A359CB32F2}"), new Guid("{57480AA5-2883-4C7D-A066-357D07C4527D}")).Value = 1.76f;
double ccmGB = icImagingControl1.VCDPropertyItems.Find<VCDAbsoluteValueProperty>(new Guid("{7F7E24E3-7162-42EF-BF5D-99A359CB32F2}"), new Guid("{57480AA5-2883-4C7D-A066-357D07C4527D}")).Value;
// BR
icImagingControl1.VCDPropertyItems.Find<VCDAbsoluteValueProperty>(new Guid("{7F7E24E3-7162-42EF-BF5D-99A359CB32F2}"), new Guid("{57480AA6-2883-4C7D-A066-357D07C4527D}")).Value = 1.77f;
double ccmBR = icImagingControl1.VCDPropertyItems.Find<VCDAbsoluteValueProperty>(new Guid("{7F7E24E3-7162-42EF-BF5D-99A359CB32F2}"), new Guid("{57480AA6-2883-4C7D-A066-357D07C4527D}")).Value;
// BG
icImagingControl1.VCDPropertyItems.Find<VCDAbsoluteValueProperty>(new Guid("{7F7E24E3-7162-42EF-BF5D-99A359CB32F2}"), new Guid("{57480AA7-2883-4C7D-A066-357D07C4527D}")).Value = 1.78f;
double ccmBG = icImagingControl1.VCDPropertyItems.Find<VCDAbsoluteValueProperty>(new Guid("{7F7E24E3-7162-42EF-BF5D-99A359CB32F2}"), new Guid("{57480AA7-2883-4C7D-A066-357D07C4527D}")).Value;
// BB
icImagingControl1.VCDPropertyItems.Find<VCDAbsoluteValueProperty>(new Guid("{7F7E24E3-7162-42EF-BF5D-99A359CB32F2}"), new Guid("{57480AA8-2883-4C7D-A066-357D07C4527D}")).Value = 1.79f;
double ccmBB = icImagingControl1.VCDPropertyItems.Find<VCDAbsoluteValueProperty>(new Guid("{7F7E24E3-7162-42EF-BF5D-99A359CB32F2}"), new Guid("{57480AA8-2883-4C7D-A066-357D07C4527D}")).Value;
[Auto ROI]タブ
トーンマッピングの有効化、強度、グローバル輝度調整などを設定。

//auto functions ROI
icImagingControl1.VCDPropertyItems.Find<VCDSwitchProperty>(new Guid("{124922E5-81C7-4587-867D-7BA16AF79079}"), VCDGUIDs.VCDElement_Value).Switch = false;
bool autoRoiEnable = icImagingControl1.VCDPropertyItems.Find<VCDSwitchProperty>(new Guid("{124922E5-81C7-4587-867D-7BA16AF79079}"), VCDGUIDs.VCDElement_Value).Switch;
// auto functions ROI preset mode 0:Full Sensor, 1:Custom Rectangle, 2:Center 50 %, 3:Center 25 %, 4:Bottom Half, 5:Top Half
icImagingControl1.VCDPropertyItems.Find<VCDMapStringsProperty>(new Guid("{124922E5-81C7-4587-867D-7BA16AF79079}"),new Guid("{93D840ED-B7B8-45FE-91E2-18E68C41AFC3}")).Value = 0;
int autoRoiPreset = icImagingControl1.VCDPropertyItems.Find<VCDMapStringsProperty>(new Guid("{124922E5-81C7-4587-867D-7BA16AF79079}"), new Guid("{93D840ED-B7B8-45FE-91E2-18E68C41AFC3}")).Value;
// auto functions ROI left
icImagingControl1.VCDPropertyItems.Find<VCDAbsoluteValueProperty>(new Guid("{124922E5-81C7-4587-867D-7BA16AF79079}"), VCDGUIDs.VCDElement_AutoRoiLeftRelative).Value = 51.0f;
double autoRoiLeft = icImagingControl1.VCDPropertyItems.Find<VCDAbsoluteValueProperty>(new Guid("{124922E5-81C7-4587-867D-7BA16AF79079}"), VCDGUIDs.VCDElement_AutoRoiLeftRelative).Value;
// auto functions ROI top
icImagingControl1.VCDPropertyItems.Find<VCDAbsoluteValueProperty>(new Guid("{124922E5-81C7-4587-867D-7BA16AF79079}"), VCDGUIDs.VCDElement_AutoRoiTopRelative).Value = 52.0f;
double autoRoiTop = icImagingControl1.VCDPropertyItems.Find<VCDAbsoluteValueProperty>(new Guid("{124922E5-81C7-4587-867D-7BA16AF79079}"), VCDGUIDs.VCDElement_AutoRoiTopRelative).Value;
// auto functions ROI width
//icImagingControl1.VCDPropertyItems.Find<VCDAbsoluteValueProperty>(new Guid("{124922E5-81C7-4587-867D-7BA16AF79079}"), VCDGUIDs.VCDElement_AutoRoiWidthRelative).Value = 50.0f;
double autoRoiWidth = icImagingControl1.VCDPropertyItems.Find<VCDAbsoluteValueProperty>(new Guid("{124922E5-81C7-4587-867D-7BA16AF79079}"), VCDGUIDs.VCDElement_AutoRoiWidthRelative).Value;
// auto functions ROI height
icImagingControl1.VCDPropertyItems.Find<VCDAbsoluteValueProperty>(new Guid("{124922E5-81C7-4587-867D-7BA16AF79079}"), VCDGUIDs.VCDElement_AutoRoiHeightRelative).Value = 48.0f;
double autoRoiHeight = icImagingControl1.VCDPropertyItems.Find<VCDAbsoluteValueProperty>(new Guid("{124922E5-81C7-4587-867D-7BA16AF79079}"), VCDGUIDs.VCDElement_AutoRoiHeightRelative).Value;
[Partial Scan]タブ
ROIの切り出し位置の開始位置を設定。

// partial scan auto
icImagingControl1.VCDPropertyItems.Find<VCDSwitchProperty>(VCDGUIDs.VCDID_PartialScanOffset, VCDGUIDs.VCDElement_PartialScanAutoCenter).Switch = false;
bool partialScanAuto = icImagingControl1.VCDPropertyItems.Find<VCDSwitchProperty>(VCDGUIDs.VCDID_PartialScanOffset, VCDGUIDs.VCDElement_PartialScanAutoCenter).Switch;
// partial scan X方向のオフセット
icImagingControl1.VCDPropertyItems.Find<VCDRangeProperty>(VCDGUIDs.VCDID_PartialScanOffset, VCDGUIDs.VCDElement_PartialScanOffsetX).Value = 0;
int partialScanOffsetX = icImagingControl1.VCDPropertyItems.Find<VCDRangeProperty>(VCDGUIDs.VCDID_PartialScanOffset, VCDGUIDs.VCDElement_PartialScanOffsetX).Value;
// partial scan Y方向のオフセット
icImagingControl1.VCDPropertyItems.Find<VCDRangeProperty>(VCDGUIDs.VCDID_PartialScanOffset, VCDGUIDs.VCDElement_PartialScanOffsetY).Value = 0;
int partialScanOffsetY = icImagingControl1.VCDPropertyItems.Find<VCDRangeProperty>(VCDGUIDs.VCDID_PartialScanOffset, VCDGUIDs.VCDElement_PartialScanOffsetY).Value;
[WDR]タブ
WDR(ワイドダイナミックレンジ)機能を有効にします。これは、明暗差の激しいシーンでも、明るい箇所の白飛びと暗い箇所の黒つぶれを同時に抑え、被写体全体を鮮明に映し出すための機能です。

//WDR
//WDR Enable
icImagingControl1.VCDPropertyItems.Find<VCDSwitchProperty>(VCDGUIDs.VCDID_ToneMapping, VCDGUIDs.VCDElement_Value).Switch = true;
bool wdrEnable = icImagingControl1.VCDPropertyItems.Find<VCDSwitchProperty>(VCDGUIDs.VCDID_ToneMapping, VCDGUIDs.VCDElement_Value).Switch;
//WDR Auto
icImagingControl1.VCDPropertyItems.Find<VCDSwitchProperty>(VCDGUIDs.VCDID_ToneMapping, VCDGUIDs.VCDElement_Auto).Switch = false;
bool wdrAuto = icImagingControl1.VCDPropertyItems.Find<VCDSwitchProperty>(VCDGUIDs.VCDID_ToneMapping, VCDGUIDs.VCDElement_Auto).Switch;
//Intensity
icImagingControl1.VCDPropertyItems.Find<VCDAbsoluteValueProperty>(VCDGUIDs.VCDID_ToneMapping, VCDGUIDs.VCDElement_ToneMapping_Intensity).Value = 0.500000;
double WDRIntensity = icImagingControl1.VCDPropertyItems.Find<VCDAbsoluteValueProperty>(VCDGUIDs.VCDID_ToneMapping, VCDGUIDs.VCDElement_ToneMapping_Intensity).Value;
//GlobalBrightnessFactor
icImagingControl1.VCDPropertyItems.Find<VCDAbsoluteValueProperty>(VCDGUIDs.VCDID_ToneMapping, VCDGUIDs.VCDElement_ToneMapping_GlobalBrightnessFactor).Value = 0.00;
double WDRGlobalBrightnessFactor = icImagingControl1.VCDPropertyItems.Find<VCDAbsoluteValueProperty>(VCDGUIDs.VCDID_ToneMapping, VCDGUIDs.VCDElement_ToneMapping_GlobalBrightnessFactor).Value;
[Multi-Frame Output Mode]タブ
マルチフレーム出力モードを有効化しています。異なる露光時間(Exposure0~3)とゲイン(Gain0~3)を適用した複数のフレームを連続して撮影する機能です。

//Multi-Frame Output Mode
//Multi-Frame Output Mode Enable
icImagingControl1.VCDPropertyItems.Find<VCDSwitchProperty>(new Guid("{49FC0326-2042-44A9-9712-CB390AEB2B50}"), VCDGUIDs.VCDElement_Value).Switch = true;
bool multiFrameEnable = icImagingControl1.VCDPropertyItems.Find<VCDSwitchProperty>(new Guid("{49FC0326-2042-44A9-9712-CB390AEB2B50}"), VCDGUIDs.VCDElement_Value).Switch;
//Frame Count
icImagingControl1.VCDPropertyItems.Find<VCDMapStringsProperty>(new Guid("{49FC0326-2042-44A9-9712-CB390AEB2B50}"), new Guid("{311CD3F1-8DF8-4566-95C9-A6F3A47C7678}")).Value = 1;
int multiFrameCount = icImagingControl1.VCDPropertyItems.Find<VCDMapStringsProperty>(new Guid("{49FC0326-2042-44A9-9712-CB390AEB2B50}"), new Guid("{311CD3F1-8DF8-4566-95C9-A6F3A47C7678}")).Value;
//Exposure 0
icImagingControl1.VCDPropertyItems.Find<VCDAbsoluteValueProperty>(new Guid("{49FC0326-2042-44A9-9712-CB390AEB2B50}"), new Guid("{519634B0-E3E1-4360-BA2D-8331A9557595}")).Value = 1.000000;
double multiFrameExp0 = icImagingControl1.VCDPropertyItems.Find<VCDAbsoluteValueProperty>(new Guid("{49FC0326-2042-44A9-9712-CB390AEB2B50}"), new Guid("{519634B0-E3E1-4360-BA2D-8331A9557595}")).Value;
//Exposure 1
icImagingControl1.VCDPropertyItems.Find<VCDAbsoluteValueProperty>(new Guid("{49FC0326-2042-44A9-9712-CB390AEB2B50}"), new Guid("{126322AB-7152-42AB-916A-28B2AB07F137}")).Value = 10.000000;
double multiFrameExp1 = icImagingControl1.VCDPropertyItems.Find<VCDAbsoluteValueProperty>(new Guid("{49FC0326-2042-44A9-9712-CB390AEB2B50}"), new Guid("{126322AB-7152-42AB-916A-28B2AB07F137}")).Value;
//Exposure 2
icImagingControl1.VCDPropertyItems.Find<VCDAbsoluteValueProperty>(new Guid("{49FC0326-2042-44A9-9712-CB390AEB2B50}"), new Guid("{1FBC5CCA-0041-4B58-B679-0409929170FA}")).Value = 100.000000;
double multiFrameExp2 = icImagingControl1.VCDPropertyItems.Find<VCDAbsoluteValueProperty>(new Guid("{49FC0326-2042-44A9-9712-CB390AEB2B50}"), new Guid("{1FBC5CCA-0041-4B58-B679-0409929170FA}")).Value;
//Exposure 3
icImagingControl1.VCDPropertyItems.Find<VCDAbsoluteValueProperty>(new Guid("{49FC0326-2042-44A9-9712-CB390AEB2B50}"), new Guid("{17BAA678-E158-486B-9A4D-1CC1DD8BF950}")).Value = 1000.000000;
double multiFrameExp3 = icImagingControl1.VCDPropertyItems.Find<VCDAbsoluteValueProperty>(new Guid("{49FC0326-2042-44A9-9712-CB390AEB2B50}"), new Guid("{17BAA678-E158-486B-9A4D-1CC1DD8BF950}")).Value;
//Customize Gain Values
icImagingControl1.VCDPropertyItems.Find<VCDSwitchProperty>(new Guid("{49FC0326-2042-44A9-9712-CB390AEB2B50}"), new Guid("{C16EDC91-F590-48AC-9D8C-116196DF3301}")).Switch = true;
bool customizeGainEnable = icImagingControl1.VCDPropertyItems.Find<VCDSwitchProperty>(new Guid("{49FC0326-2042-44A9-9712-CB390AEB2B50}"), new Guid("{C16EDC91-F590-48AC-9D8C-116196DF3301}")).Switch;
//Gain 0
icImagingControl1.VCDPropertyItems.Find<VCDAbsoluteValueProperty>(new Guid("{49FC0326-2042-44A9-9712-CB390AEB2B50}"), new Guid("{6DD130C3-2195-4176-9309-B7595F60F2A9}")).Value = 0;
double multiFrameGain0 = icImagingControl1.VCDPropertyItems.Find<VCDAbsoluteValueProperty>(new Guid("{49FC0326-2042-44A9-9712-CB390AEB2B50}"), new Guid("{6DD130C3-2195-4176-9309-B7595F60F2A9}")).Value;
//Gain 1
icImagingControl1.VCDPropertyItems.Find<VCDAbsoluteValueProperty>(new Guid("{49FC0326-2042-44A9-9712-CB390AEB2B50}"), new Guid("{4E6E7BA9-D378-4790-9374-9D38DC6013DB}")).Value = 1;
double multiFrameGain1 = icImagingControl1.VCDPropertyItems.Find<VCDAbsoluteValueProperty>(new Guid("{49FC0326-2042-44A9-9712-CB390AEB2B50}"), new Guid("{4E6E7BA9-D378-4790-9374-9D38DC6013DB}")).Value;
//Gain 2
icImagingControl1.VCDPropertyItems.Find<VCDAbsoluteValueProperty>(new Guid("{49FC0326-2042-44A9-9712-CB390AEB2B50}"), new Guid("{C201436E-7A99-451D-AEF5-795F27F9AE8A}")).Value = 2;
double multiFrameGain2 = icImagingControl1.VCDPropertyItems.Find<VCDAbsoluteValueProperty>(new Guid("{49FC0326-2042-44A9-9712-CB390AEB2B50}"), new Guid("{C201436E-7A99-451D-AEF5-795F27F9AE8A}")).Value;
//Gain 3
icImagingControl1.VCDPropertyItems.Find<VCDAbsoluteValueProperty>(new Guid("{49FC0326-2042-44A9-9712-CB390AEB2B50}"), new Guid("{C2DA90D4-3711-40E2-BE21-E673D26F44B4}")).Value = 3;
double multiFrameGain3 = icImagingControl1.VCDPropertyItems.Find<VCDAbsoluteValueProperty>(new Guid("{49FC0326-2042-44A9-9712-CB390AEB2B50}"), new Guid("{C2DA90D4-3711-40E2-BE21-E673D26F44B4}")).Value;


