USB3Visionデバイスのプロパティ一覧
使用できるSDK・ドライバ・デバイス
| SDK | IC Imaging Control 4 SDK |
|---|---|
| ドライバ | GenTL Producer for USB3 Vision Cameras |
| デバイス | 32Uシリーズ、33Uシリーズ、37Uシリーズ、38Uシリーズ、DFG/HDMI |
| SFNC feature | Namespace | IC4 設定項目 |
主な機能 | 説明 | 詳細 |
|---|
-
IC4詳細・解説
Acquisition Control はカメラの撮像動作を直接制御するためのカテゴリであり、撮影開始や停止、モード切替、露光やフレームレートの設定、さらにはトリガー制御まで幅広く扱います。例えば、AcquisitionStartやAcquisitionStop を使うことで画像ストリーミングを開始・停止でき、AcquisitionFrameRate によってフレームレートを、ExposureTimeによって露光時間をマイクロ秒単位で設定することが可能です。自動露光を利用する場合には ExposureAutoをContinuousに設定し、基準輝度や露光時間の上下限を細かく調整できます。さらに、外部信号やソフトウェアによるトリガー撮影にも対応しており、TriggerSourceをLine1(ハードウェアトリガー)やSoftware(ソフトウェアトリガー) に設定し、TriggerActivation でRisingEdge(立ち上がり時の撮影)や FallingEdge(立ち下がり時の撮影) を指定することで柔軟な制御が可能です。さらにTriggerDelay や TriggerDebouncer を利用すれば遅延やノイズ対策を行うことができ、AcquisitionBurstFrameCount や AcquisitionBurstInterval を設定すればバースト撮影も設定可能です。
// 撮像開始 grabber.DevicePropertyMap.ExecuteCommand("AcquisitionStart"); // 撮像停止 grabber.DevicePropertyMap.ExecuteCommand("AcquisitionStop"); // 撮像モード(例:Continuous)ReadOnly string AcquisitionMode = grabber.DevicePropertyMap.GetValueString("AcquisitionMode"); // 撮像フレームレートの設定 grabber.DevicePropertyMap.SetValue("AcquisitionFrameRate", 15); double AcquisitionFrameRate = grabber.DevicePropertyMap.GetValueDouble("AcquisitionFrameRate"); // 露光時間(単位:マイクロ秒) grabber.DevicePropertyMap.SetValue("ExposureTime",66666); double ExposureTime = grabber.DevicePropertyMap.GetValueDouble("ExposureTime"); // 自動露光のON/OFF("Off", "Once", "Continuous") grabber.DevicePropertyMap.SetValue("ExposureAuto", "Off"); string ExposureAuto = grabber.DevicePropertyMap.GetValueString("ExposureAuto"); // 自動露光の基準輝度(通常128) grabber.DevicePropertyMap.SetValue("ExposureAutoReference", 128); double ExposureAutoReference = grabber.DevicePropertyMap.GetValueDouble("ExposureAutoReference"); // 自動露光の下限(μs) grabber.DevicePropertyMap.SetValue("ExposureAutoLowerLimit", 50.0); double ExposureAutoLowerLimit = grabber.DevicePropertyMap.GetValueDouble("ExposureAutoLowerLimit"); // 自動露光の上限(μs) grabber.DevicePropertyMap.SetValue("ExposureAutoUpperLimit", 66666); double ExposureAutoUpperLimit = grabber.DevicePropertyMap.GetValueDouble("ExposureAutoUpperLimit"); // 自動露光の上限を自動で決定(ON/OFF) grabber.DevicePropertyMap.SetValue("ExposureAutoUpperLimitAuto", true); bool ExposureAutoUpperLimitAuto = grabber.DevicePropertyMap.GetValueBool("ExposureAutoUpperLimitAuto"); // ハイライト低減の有効化(白とび軽減) grabber.DevicePropertyMap.SetValue("ExposureAutoHighlightReduction", false); bool ExposureAutoHighlightReduction = grabber.DevicePropertyMap.GetValueBool("ExposureAutoHighlightReduction"); // トリガー対象("FrameStart" など) grabber.DevicePropertyMap.SetValue("TriggerSelector", "FrameStart"); string TriggerSelector = grabber.DevicePropertyMap.GetValueString("TriggerSelector"); // トリガーモード("On"/"Off") grabber.DevicePropertyMap.SetValue("TriggerMode", "Off"); string TriggerMode = grabber.DevicePropertyMap.GetValueString("TriggerMode"); // トリガーソース("Line1", "Software", "Any" など) grabber.DevicePropertyMap.SetValue("TriggerSource", "Any"); string TriggerSource = grabber.DevicePropertyMap.GetValueString("TriggerSource"); // トリガー条件("RisingEdge", "FallingEdge" など) grabber.DevicePropertyMap.SetValue("TriggerActivation", "RisingEdge"); string TriggerActivation = grabber.DevicePropertyMap.GetValueString("TriggerActivation"); // ソフトウェアトリガーを発行( grabber.DevicePropertyMap.ExecuteCommand("TriggerSoftware"); // トリガー遅延(単位:μs) grabber.DevicePropertyMap.SetValue("TriggerDelay", 1455.9); double TriggerDelay = grabber.DevicePropertyMap.GetValueDouble("TriggerDelay"); // デバウンス時間(ノイズ除去用のフィルタ) grabber.DevicePropertyMap.SetValue("TriggerDebouncer", 0.0); double TriggerDebouncer = grabber.DevicePropertyMap.GetValueDouble("TriggerDebouncer"); // トリガーマスク(ビットマスクによる制御) grabber.DevicePropertyMap.SetValue("TriggerMask", 0); int TriggerMask = (int)grabber.DevicePropertyMap.GetValueDouble("TriggerMask"); // トリガーデノイズ設定 grabber.DevicePropertyMap.SetValue("TriggerDenoise", 0); int TriggerDenoise = (int)grabber.DevicePropertyMap.GetValueDouble("TriggerDenoise"); // 連写枚数の設定(MultiFrameやBurst用) grabber.DevicePropertyMap.SetValue("AcquisitionBurstFrameCount", 1); double AcquisitionBurstFrameCount = grabber.DevicePropertyMap.GetValueDouble("AcquisitionBurstFrameCount"); // 連写の間隔(Burst撮像時、μs単位) grabber.DevicePropertyMap.SetValue("AcquisitionBurstInterval", 100); double AcquisitionBurstInterval = grabber.DevicePropertyMap.GetValueDouble("AcquisitionBurstInterval"); // トリガーオーバーラップ設定("ReadOut"など) string TriggerOverlap = grabber.DevicePropertyMap.GetValueString("TriggerOverlap");[Acquisition Control]の詳細を閉じる▲ -
IC4詳細・解説
カメラが出力する1フレームあたりのデータサイズ(バイト数)を示すのが PayloadSize です。この値は画像の幅・高さ・カラーフォーマット(モノクロ8bit、RGB、Bayer など)によって決まり、必要な通信帯域やPC側の処理負荷を見積もる際の基準となります。例えば解像度が 1920×1200 で、各ピクセルを 3Byte(BGR8 フォーマット)のカメラの場合、理論値は 1920×1200 × 3 = 6,912,000Byte となります。実際の PayloadSize にはヘッダ情報などが加算されるため、実測値として 6,912,024 Byte となります。
// PayloadSize(ペイロードサイズ)を取得する double PayloadSize = grabber.DevicePropertyMap.GetValueDouble("PayloadSize");[Transport Layer Control]の詳細を閉じる▲ -
IC4詳細・解説
Device Control は、カメラを使用する際に欠かせない基本カテゴリの一つであり、デバイス全体の管理や制御を担います。このカテゴリでは、カメラの接続や認識状態を確認し、必要に応じて初期化やリセットを行うことが可能です。撮影を始める前に、ホスト PC とのリンク状態や通信の安定性を確認するのもこの機能の役割です。さらに、接続されたカメラのハードウェア情報やネットワーク設定、ストリームチャネルの構成といったシステムに関わる情報を取得できます。加えて、タイムスタンプの監視や内部温度の把握など、運用中の監視機能も含まれています。USBカメラの場合は、下記のようにデバイスリセットを直接行えるため、異常時に素早く復旧できる利点があります。
USBカメラの監視と再接続処理
IC Imaging Control Ver4.0(C#/VB.NET) サンプルプログラム// デバイスの種類(例:"Camera" など) string DeviceType = grabber.DevicePropertyMap.GetValueString("DeviceType"); // スキャン方式("AreaScan" または "LineScan" など) string DeviceScanType = grabber.DevicePropertyMap.GetValueString("DeviceScanType"); // ベンダー名(製造会社名) string DeviceVendorName = grabber.DevicePropertyMap.GetValueString("DeviceVendorName"); // モデル名(使用しているカメラの機種名) string DeviceModelName = grabber.DevicePropertyMap.GetValueString("DeviceModelName"); // デバイスのファームウェアバージョン string DeviceVersion = grabber.DevicePropertyMap.GetValueString("DeviceFirmwareVersion"); // シリアル番号(個体識別用) string DeviceSerialNumber = grabber.DevicePropertyMap.GetValueString("DeviceSerialNumber"); // ユーザー定義のカメラ名(後から設定可能) string DeviceUserID = grabber.DevicePropertyMap.GetValueString("DeviceUserID"); grabber.DevicePropertyMap.SetValue("DeviceUserID", "MyCamera01"); // GenICam準拠のバージョン情報(カメラ機能仕様のバージョン) double DeviceSFNCVersionMajor = grabber.DevicePropertyMap.GetValueDouble("DeviceSFNCVersionMajor"); double DeviceSFNCVersionMinor = grabber.DevicePropertyMap.GetValueDouble("DeviceSFNCVersionMinor"); double DeviceSFNCVersionSubMinor = grabber.DevicePropertyMap.GetValueDouble("DeviceSFNCVersionSubMinor"); // USBデバイスをリセット grabber.DevicePropertyMap.ExecuteCommand("DeviceReset"); // タイムスタンプを初期化(値をリセット) grabber.DevicePropertyMap.ExecuteCommand("TimestampReset"); // 現在のタイムスタンプ値を保存(ラッチ) grabber.DevicePropertyMap.ExecuteCommand("TimestampLatch"); // 保持されたタイムスタンプの数値形式 double TimestampLatchValue = grabber.DevicePropertyMap.GetValueDouble("TimestampLatchValue"); // 保持されたタイムスタンプの文字列形式 //string TimestampLatchString = grabber.DevicePropertyMap.GetValueString("TimestampLatchString"); // 温度モニタリング(対象は "Sensor", "Board", "Housing" など選択可能) grabber.DevicePropertyMap.SetValue("DeviceTemperatureSelector", "Sensor"); string DeviceTemperatureSelector = grabber.DevicePropertyMap.GetValueString("DeviceTemperatureSelector"); // 選択した部位の現在温度 double DeviceTemperature = grabber.DevicePropertyMap.GetValueDouble("DeviceTemperature"); // 帯域幅の制限を有効にする(On:制限する、Off:無制限) grabber.DevicePropertyMap.SetValue("DeviceLinkThroughputLimitMode", "Off"); bool DeviceLinkThroughputLimitMode = grabber.DevicePropertyMap.GetValueBool("DeviceLinkThroughputLimitMode"); // リンク(通信路)の最大スループット(単位:bps、例:400MB/s = 400000000) grabber.DevicePropertyMap.SetValue("DeviceLinkThroughputLimit", 400000000); double DeviceLinkThroughputLimit = grabber.DevicePropertyMap.GetValueDouble("DeviceLinkThroughputLimit");[Device Control]の詳細を閉じる▲ -
IC4詳細・解説
Test Control は、カメラやアプリケーションの機能が正しく動作しているかを検証するための仕組みで、主に開発やデバッグ時に使用されます。例えば TestEventGenerate を実行すると、カメラは擬似的なイベントを生成し、アプリケーション側に通知が届くかどうかを確認できます。これにより、イベント処理の実装が正しく行われているかを簡単に検証できます。
//TestPendingAck // テストコマンドの応答待ち時間を設定します。 grabber.DevicePropertyMap.SetValue("TestPendingAck", 0); double TestPendingAck = grabber.DevicePropertyMap.GetValueDouble("TestPendingAck"); //TestEventGenerate // イベントを生成するコマンド(カメラのテストやデバッグ用) grabber.DevicePropertyMap.ExecuteCommand("TestEventGenerate"); TestPendingAck = grabber.DevicePropertyMap.GetValueDouble("TestPendingAck");[Test Control]の詳細を閉じる▲ -
IC4詳細・解説
Image Format Controlは、カメラから出力される映像の「見え方」や「使うピクセルの範囲」を決めるカテゴリです。ここでは解像度の設定、ROI(Region of Interest:関心領域)の指定、ビニングやスキッピングによる画素処理、画像の上下・左右反転といった調整を行うことができます。ROIを使えば撮影範囲の一部だけを切り出して効率的に処理でき、ビニングやスキッピングは画素を間引くことでフレームレート向上や感度改善を実現します。また、反転機能を用いると光学系の取り付け方向やミラー反射の影響を補正できます。
// センサー1画素の物理サイズ(単位:µm) double SensorPixelWidth = grabber.DevicePropertyMap.GetValueDouble("SensorPixelWidth"); double SensorPixelHeight = grabber.DevicePropertyMap.GetValueDouble("SensorPixelHeight"); // センサー全体の物理サイズ(単位:mm) double SensorWidth = grabber.DevicePropertyMap.GetValueDouble("SensorWidth"); double SensorHeight = grabber.DevicePropertyMap.GetValueDouble("SensorHeight"); // カメラが対応可能な最大解像度 double WidthMax = grabber.DevicePropertyMap.GetValueDouble("WidthMax"); double HeightMax = grabber.DevicePropertyMap.GetValueDouble("HeightMax"); // 画像の横幅(解像度)を設定・取得 grabber.DevicePropertyMap.SetValue("Width", 640); double Width = grabber.DevicePropertyMap.GetValueDouble("Width"); // 画像の高さ(解像度)を設定・取得 grabber.DevicePropertyMap.SetValue("Height", 1080); double Height = grabber.DevicePropertyMap.GetValueDouble("Height"); // 画像の切り出し開始位置(左上からのオフセット)を設定・取得 grabber.DevicePropertyMap.SetValue("OffsetX", 0); double OffsetX = grabber.DevicePropertyMap.GetValueDouble("OffsetX"); grabber.DevicePropertyMap.SetValue("OffsetY", 0); double OffsetY = grabber.DevicePropertyMap.GetValueDouble("OffsetY"); // 切り出しの基準位置を中央にするかどうか("Off" = 左上基準) grabber.DevicePropertyMap.SetValue("OffsetAutoCenter", "Off"); string OffsetAutoCenter = grabber.DevicePropertyMap.GetValueString("OffsetAutoCenter"); // カラーフォーマットの設定(例:"Mono8" はモノクロ8bit) // 利用可能なフォーマットはカメラにより異なるため、IC Capture等で事前確認が必要 grabber.DevicePropertyMap.SetValue("PixelFormat", "Mono8"); string pixelformat = grabber.DevicePropertyMap.GetValueString("PixelFormat"); // 水平方向のビニング(ここでは無効=1倍) grabber.DevicePropertyMap.SetValue("BinningHorizontal", 1); double BinningHorizontal = grabber.DevicePropertyMap.GetValueDouble("BinningHorizontal"); // 垂直方向のビニング(ここでは無効=1倍) grabber.DevicePropertyMap.SetValue("BinningVertical", 1); double BinningVertical = grabber.DevicePropertyMap.GetValueDouble("BinningVertical"); // 水平方向のデシメーション(画素間引き処理)(ここでは無効=1倍) grabber.DevicePropertyMap.SetValue("DecimationHorizontal", 1); double DecimationHorizontal = grabber.DevicePropertyMap.GetValueDouble("DecimationHorizontal"); // 垂直方向のデシメーション(ここでは無効=1倍) grabber.DevicePropertyMap.SetValue("DecimationVertical", 1); double DecimationVertical = grabber.DevicePropertyMap.GetValueDouble("DecimationVertical"); // 水平方向の画像反転設定(false = 反転なし) grabber.DevicePropertyMap.SetValue("ReverseX", false); bool ReverseX = grabber.DevicePropertyMap.GetValueBool("ReverseX"); // 垂直方向の画像反転設定(true = 上下反転あり) grabber.DevicePropertyMap.SetValue("ReverseY", true); bool ReverseY = grabber.DevicePropertyMap.GetValueBool("ReverseY");[Image Format Control]の詳細を閉じる▲ -
IC4詳細・解説
Analog Controlは、カメラの映像信号に関わる画質パラメータを調整するためのカテゴリで、色合いや明るさなどの画像を調整します。このカテゴリに含まれる代表的な機能として、ゲイン(Gain)があり、これはセンサー出力を増幅して全体的な明るさを引き上げます。暗い環境で有効ですが、ノイズも大きくなるため、必要に応じて適切な範囲で設定する必要があります。また、ブラックレベル(BlackLevel)があり、これは画像全体の黒基準を変えることで暗部の階調を調整することができます。ホワイトバランス(WhiteBalance)は、赤・緑・青の各色ゲインを補正して、光源の色温度に左右されない色再現を実現します。またBrightness や Contrast の調整によって、全体的な明るさバランスや階調の強調具合を変更できます。
// BlackLevel:黒レベル補正値(通常 0~数十) grabber.DevicePropertyMap.SetValue("BlackLevel", 42); double BlackLevel = grabber.DevicePropertyMap.GetValueDouble("BlackLevel"); // Gain:ゲイン値 grabber.DevicePropertyMap.SetValue("Gain", 30.1); double Gain = grabber.DevicePropertyMap.GetValueDouble("Gain"); // GainAuto:ゲイン自動調整("Off", "Once", "Continuous") grabber.DevicePropertyMap.SetValue("GainAuto", "Off"); string GainAuto = grabber.DevicePropertyMap.GetValueString("GainAuto"); // GainAutoLowerLimit:自動ゲインの最小制限値 grabber.DevicePropertyMap.SetValue("GainAutoLowerLimit", 0.0); double GainAutoLowerLimit = grabber.DevicePropertyMap.GetValueDouble("GainAutoLowerLimit"); // GainAutoUpperLimit:自動ゲインの最大制限値 grabber.DevicePropertyMap.SetValue("GainAutoUpperLimit", 24.0); double GainAutoUpperLimit = grabber.DevicePropertyMap.GetValueDouble("GainAutoUpperLimit"); // BalanceRatioSelector:補正対象の色チャンネルを選択("Red", "Green", "Blue") grabber.DevicePropertyMap.SetValue("BalanceRatioSelector", "Red"); string RedBalanceRatioSelector = grabber.DevicePropertyMap.GetValueString("BalanceRatioSelector"); // BalanceRatio:選択中の色チャンネルのホワイトバランス比率(倍率値) grabber.DevicePropertyMap.SetValue("BalanceRatio", 1.5); double RedBalanceRatio = grabber.DevicePropertyMap.GetValueDouble("BalanceRatio"); // BalanceRatioSelector:補正対象の色チャンネルを選択("Red", "Green", "Blue") grabber.DevicePropertyMap.SetValue("BalanceRatioSelector", "Green"); string GreenBalanceRatioSelector = grabber.DevicePropertyMap.GetValueString("BalanceRatioSelector"); // BalanceRatio:選択中の色チャンネルのホワイトバランス比率(倍率値) grabber.DevicePropertyMap.SetValue("BalanceRatio", 1.5); double GreenBalanceRatio = grabber.DevicePropertyMap.GetValueDouble("BalanceRatio"); // BalanceRatioSelector:補正対象の色チャンネルを選択("Red", "Green", "Blue") grabber.DevicePropertyMap.SetValue("BalanceRatioSelector", "Red"); string BlueBalanceRatioSelector = grabber.DevicePropertyMap.GetValueString("BalanceRatioSelector"); // BalanceRatio:選択中の色チャンネルのホワイトバランス比率(倍率値) grabber.DevicePropertyMap.SetValue("BalanceRatio", 1.5); double BlueBalanceRatio = grabber.DevicePropertyMap.GetValueDouble("BalanceRatio"); // BalanceWhiteAuto:自動ホワイトバランスのモード("Off", "Once", "Continuous") grabber.DevicePropertyMap.SetValue("BalanceWhiteAuto", "Off"); string BalanceWhiteAuto = grabber.DevicePropertyMap.GetValueString("BalanceWhiteAuto"); // BalanceWhiteMode:ホワイトバランス方式 WhiteBalanceMode_GrayWorld, WhiteBalanceMode_Temperature grabber.DevicePropertyMap.SetValue("BalanceWhiteMode", "WhiteBalanceMode_GrayWorld"); string BalanceWhiteMode = grabber.DevicePropertyMap.GetValueString("BalanceWhiteMode"); // BalanceWhiteAutoPreset:AWBのプリセット(例:BalanceWhiteAutoPreset_Any, BalanceWhiteAutoPreset_WarmWhite, BalanceWhiteAutoPreset_CoolWhite, BalanceWhiteAutoPreset_DayLight, BalanceWhiteAutoPreset_DeepShade grabber.DevicePropertyMap.SetValue("BalanceWhiteAutoPreset", "BalanceWhiteAutoPreset_Any"); string BalanceWhiteAutoPreset = grabber.DevicePropertyMap.GetValueString("BalanceWhiteAutoPreset"); // BalanceWhiteTemperaturePreset:色温度のプリセット(BalanceWhiteTemperaturePreset_SodiumVaporLamp, BalanceWhiteTemperaturePreset_WarmLight, BalanceWhiteTemperaturePreset_HalogenLight, BalanceWhiteTemperaturePreset_NeutralWhite, BalanceWhiteTemperaturePreset_CoolWhiteFluorescentLight, BalanceWhiteTemperaturePreset_CoolWhiteDaylight, BalanceWhiteTemperaturePreset_Daylight, BalanceWhiteTemperaturePreset_CoolWhiteLED, BalanceWhiteTemperaturePreset_BlueSky) grabber.DevicePropertyMap.SetValue("BalanceWhiteTemperaturePreset", "BalanceWhiteTemperaturePreset_SodiumVaporLamp"); string BalanceWhiteTemperaturePreset = grabber.DevicePropertyMap.GetValueString("BalanceWhiteTemperaturePreset"); // BalanceWhiteTemperature:色温度(単位:ケルビン) grabber.DevicePropertyMap.SetValue("BalanceWhiteTemperature", 4000); double BalanceWhiteTemperature = grabber.DevicePropertyMap.GetValueDouble("BalanceWhiteTemperature"); // Gamma:出力画像の階調補正(デフォルト:1.0) grabber.DevicePropertyMap.SetValue("Gamma", 1.0); double Gamma = grabber.DevicePropertyMap.GetValueDouble("Gamma");[Analog Control]の詳細を閉じる▲ -
IC4詳細・解説
Color Transformation Controlは、カメラから出力されるカラー画像の色合いを調整する機能です。RGBそれぞれの値を変換行列に通すことで、赤・緑・青のバランスを変え、照明環境に応じた補正を行います。たとえば、蛍光灯の下で赤みが強くなったり、屋外で青みが強くなる場合に、行列の係数を変えることで色を中和し、実際の見た目に近づけることができます。基本的にはRGB to RGB変換を用い、ColorTransformationEnableでこの機能をオンにすると有効になります。その状態では、ColorTransformationValueSelectorで行列のどの係数を操作するかを選び、ColorTransformationValueで数値を設定します。これにより、特定の色成分を強めたり弱めたりする微調整が可能です。また、Saturation EnableやSaturationを使うと、全体の彩度を高めて鮮やかさを出すこともできます。これらの設定によって、撮影環境や用途に合わせて柔軟に色の見え方をコントロールでき、最適な映像品質を得ることが可能になります。
// ColorTransformationSelector:色変換モードの選択(例:"RGBtoRGB") grabber.DevicePropertyMap.SetValue("ColorTransformationSelector", "RGBtoRGB"); string ColorTransformationSelector = grabber.DevicePropertyMap.GetValueString("ColorTransformationSelector"); //ColorTransformationEnable:色変換を有効にするかどうか grabber.DevicePropertyMap.SetValue("ColorTransformationEnable", false); bool ColorTransformationEnable = grabber.DevicePropertyMap.GetValueBool("ColorTransformationEnable"); // ColorTransformationValueSelector:係数を選択("Gain00, Gain01, Gain02, Gain10, Gain11, Gain12, Gain20, Gain21, Gain22) // RGB変換マトリクスの各要素やオフセット grabber.DevicePropertyMap.SetValue("ColorTransformationValueSelector", "Gain00"); string ColorTransformationValueSelector = grabber.DevicePropertyMap.GetValueString("ColorTransformationValueSelector"); // ColorTransformationValue:選択された係数の数値を設定または取得 grabber.DevicePropertyMap.SetValue("ColorTransformationValue", 1.71); double ColorTransformationValue = grabber.DevicePropertyMap.GetValueDouble("ColorTransformationValue"); // Hue:色相(色の回転)を調整 grabber.DevicePropertyMap.SetValue("Hue", 0.0); double Hue = grabber.DevicePropertyMap.GetValueDouble("Hue"); // Saturation:彩度(色の鮮やかさ)を調整 grabber.DevicePropertyMap.SetValue("Saturation", 100); double Saturation = grabber.DevicePropertyMap.GetValueDouble("Saturation");[Color Transformation Control]の詳細を閉じる▲ -
IC4詳細・解説
Digital I/O Controlは、カメラに搭載されているGPIOポート(デジタル入出力端子)を制御するための機能です。カメラにはGPIOという入出力端子があり、そこから外部から信号を受け取ることも外部へ信号を出すこともできます。たとえば GPInはカメラが外部から来る信号を読む機能でスイッチやセンサーから信号が来ると「LOW(0)」や「HIGH(1)」として検出できるので、スイッチが押された瞬間に撮影を開始する、といった動作ができます。一方、GPOutはカメラから外部へ信号を送る機能で、ソフトから「1」を出すと外部機器に撮影したことを知らせたり、PLCや照明などを制御することが可能です。また、StrobeEnableを有効にすると露光に合わせてカメラがストロボ用の信号を出し、撮影と照明を同期することができます。さらに StrobeOperationを設定すれば「露光中だけストロボを点灯」といった動作が簡単にできます。
// StrobeEnable:ストロボ出力の有効化(On, Off) grabber.DevicePropertyMap.SetValue("StrobeEnable", "On"); bool StrobeEnable = grabber.DevicePropertyMap.GetValueBool("StrobeEnable"); // StrobePolarity:ストロボ出力の極性(ActiveHigh, ActiveLow) grabber.DevicePropertyMap.SetValue("StrobePolarity", "ActiveHigh"); string StrobePolarity = grabber.DevicePropertyMap.GetValueString("StrobePolarity"); // StrobeOperation:ストロボ動作モードの選択(例:"Exposure") grabber.DevicePropertyMap.SetValue("StrobeOperation", "Exposure"); string StrobeOperation = grabber.DevicePropertyMap.GetValueString("StrobeOperation"); // GPIn:GPIOの入力状態(ReadOnly) // 0: LOW, 1: HIGH double GPIn = grabber.DevicePropertyMap.GetValueDouble("GPIn"); // GPOut:GPIOの出力状態(Write可能) grabber.DevicePropertyMap.SetValue("GPOut", 1); double GPOut = grabber.DevicePropertyMap.GetValueDouble("GPOut");[Digital I/O Control]の詳細を閉じる▲ -
IC4詳細・解説
カメラ内部で発生する特定の出来事(露光終了、トリガーミス、外部信号の立上り/立下りなど)を選択して監視し、通知を有効化する機能です。EventSelectorで監視対象を選び、EventNotificationで通知のON/OFFを設定します。発生時刻(Timestamp)やフレームIDを取得することで、画像との紐づけや同期処理が可能です。
イベントの通知を有効にするには、EventNotificationを"On"に設定します。これにより、選択したイベントが実際に発生したとき、ソフトウェア側でその情報を受け取り処理を行うことができるようになります。
Line1RisingEdgeを使って外部信号の立ち上がりエッジを検知したい場合の具体的な手順は、以下の解説をご参照ください。ライブ表示+カメラへの外部トリガー入力で静止画保存
IC Imaging Control Ver4.0(C#/VB.NET) サンプルプログラム//EventSelector:監視するイベントの種類を選択 //例: ExposureEnd, FrameTriggerMissed, Line1RisingEdge, Line1FallingEdge, Test grabber.DevicePropertyMap.SetValue("EventSelector", "ExposureEnd"); string EventSelector = grabber.DevicePropertyMap.GetValueString("EventSelector"); // EventNotification:選択したイベント通知を有効化または無効化("Off", "On") grabber.DevicePropertyMap.SetValue("EventNotification", "On"); string EventNotification = grabber.DevicePropertyMap.GetValueString("EventNotification");[Event Control]の詳細を閉じる▲ -
IC4詳細・解説
EventExposureEndData は、カメラ内部で「露光が終了した瞬間」に発火するイベントです。これにより、フレームが物理的に取得された正確なタイミングを把握できます。EventExposureEnd はこの通知の有効/無効を切り替える設定で、EventExposureEndTimestamp はカメラ内部クロックに基づく露光終了時刻を示します。複数カメラ間で露光終了タイミングを比較・評価したい場合に利用してください。
一方、画像の保存・表示・画像処理といった画素データの扱いは、IC Imaging Control 4 の QueueSink(コールバック)側で行います。すなわち、タイミングの基準は EventExposureEndData、実データの処理は QueueSink、と役割を分けて使用してください。// EventExposureEnd:露光終了イベントの通知有効化(true:有効, false:無効) double EventExposureEnd = grabber.DevicePropertyMap.GetValueDouble("EventExposureEnd"); // EventExposureEndTimestamp:露光終了のタイムスタンプ(ReadOnly) // 単位:通常ナノ秒。カメラ内部クロック基準での露光終了時刻 double EventExposureEndTimestamp = grabber.DevicePropertyMap.GetValueDouble("EventExposureEndTimestamp"); // EventExposureEndFrameID:露光終了が発生したフレームのID(ReadOnly) // フレームとイベントの対応づけを行うために使用 double EventExposureEndFrameID = grabber.DevicePropertyMap.GetValueDouble("EventExposureEndFrameID");[EventExposureEndData]の詳細を閉じる▲ -
IC4詳細・解説
外部トリガーがカメラに送信されたにもかかわらず、何らかの理由で露光が開始できなかった「トリガーミス(FrameTriggerMissed)」のイベントです。EventFrameTriggerMissedはその通知の有効/無効を制御するプロパティで、trueに設定することでイベント監視を有効化します。また、EventFrameTriggerMissedTimestampは、そのトリガーミスが発生した時刻を、カメラ内部のクロックに基づいて計測されます。付随するメタデータには、トリガ信号の識別子や発生時刻が含まれるため、ホスト側ではどのフレームで失敗が起きたのかを特定でき、同期精度の検証やシステムのパフォーマンス改善に活用できます。
// EventFrameTriggerMissed:トリガーミスのイベント通知を有効化(true:有効, false:無効) // 外部トリガーが来たが、露光が始まらなかった、またはカメラが対応できなかった場合に通知 double EventFrameTriggerMissed = grabber.DevicePropertyMap.GetValueDouble("EventFrameTriggerMissed"); // EventFrameTriggerMissedTimestamp:トリガーミスが発生した時刻(ReadOnly) // 単位はナノ秒やマイクロ秒など(カメラ依存)、カメラ内クロック基準 double EventFrameTriggerMissedTimestamp = grabber.DevicePropertyMap.GetValueDouble("EventFrameTriggerMissedTimestamp");[EventFrameTriggerMissedData]の詳細を閉じる▲ -
IC4詳細・解説
カメラのGPIOに入力される外部信号の「立ち上がりエッジ(LOW→HIGHの変化)」を検出するイベントです。EventLine1RisingEdgeはそのイベント通知の有効・無効を制御するプロパティで、これを有効にすることで、外部トリガー信号がカメラに入力された瞬間を検出し、アプリケーション側に通知させることができます。また、EventLine1RisingEdgeTimestamp は、外部トリガーの立ち上がりが発生した時刻を示すプロパティで、タイムスタンプを取得できます。ただし、この機能は外部 I/O 信号を直接監視しているため、ノイズによるチャタリングがあると、1回の入力にもかかわらず複数回のイベントが発生してしまう場合があります。そのため、安定した検出を行うには、トリガー機能の「デバウンス設定」といった機能を併用してください。
// EventLine1RisingEdge:Line1(外部信号)の立ち上がりエッジ検出イベントを有効化(true:有効, false:無効) // トリガー入力やGPIO入力の立ち上がりを検出するために使用 string EventLine1RisingEdge = grabber.DevicePropertyMap.GetValueString("EventLine1RisingEdge"); // EventLine1RisingEdgeTimestamp:Line1立ち上がりエッジが検出された時のタイムスタンプ(ReadOnly) // 単位:ナノ秒やマイクロ秒(カメラ内部クロックに基づく) double EventLine1RisingEdgeTimestamp = grabber.DevicePropertyMap.GetValueDouble("EventLine1RisingEdgeTimestamp");[Event Line1 Rising Edge Data]の詳細を閉じる▲ -
IC4詳細・解説
EventLine1FallingEdgeDataは、カメラの GPIO に入力される外部信号が「立ち下がりエッジ(HIGH→LOW)」に変化した瞬間を検出して通知するイベントです。これを有効化すると、外部トリガー信号がOFFになった正確なタイミングをカメラ側から知らせることができます。付随するタイムスタンプ情報により、その変化が起こった時刻を正確に把握できるため、外部機器の動作との同期の検証等に有効です。立ち下がりエッジは、例えば「信号がHIGHの間だけ処理を行い、LOWになったら終了する」といった制御に利用されます。ただし、外部信号にノイズやチャタリングが含まれると不要なイベントが発生する可能性があるため、ソフトウェアでのデバウンス処理を組み合わせるようにしてください。
// EventLine1FallingEdge:Line1 の立ち下がりエッジ(HIGH → LOW)を検出するイベント通知を有効化 // GPIO入力の負エッジ検出に使用(外部機器との同期に便利) bool EventLine1FallingEdge = grabber.DevicePropertyMap.GetValueBool("EventLine1FallingEdge"); // EventLine1FallingEdgeTimestamp:Line1 の立ち下がりエッジが発生した時刻(ReadOnly) // 単位:ナノ秒またはマイクロ秒(カメラ内部クロック基準) double EventLine1FallingEdgeTimestamp = grabber.DevicePropertyMap.GetValueDouble("EventLine1FallingEdgeTimestamp");[EventLine1FallingEdgeData]の詳細を閉じる▲ -
IC4詳細・解説
カメラに搭載された「テストイベント」機能の確認および制御をしています。EventTest は、カメラ内部で擬似的に生成されるイベントで、実際の撮像イベントではなく、イベント通知の機能が正しく機能しているかを確認するために使用されます。TestEventGenerateを実行すると、テストイベントが発生し、タイムスタンプEventTestTimestampなどの情報を取得することができます。
// TestEventGenerate:テストイベント(EventTest)をソフトウェアから強制的に発生させるためのコマンド // 通常は SetValue で "Execute" を指定することで、EventTest が発行されます grabber.DevicePropertyMap.ExecuteCommand("TestEventGenerate"); // EventTest:カメラのテストイベント通知を有効化(true: 有効, false: 無効) // ※これはイベント通知機構のテスト用途で、実運用では使用しないことが一般的です double EventTest = grabber.DevicePropertyMap.GetValueDouble("EventTest"); // EventTestTimestamp:直近のテストイベントが発生した時刻(ReadOnly) // 単位:ナノ秒またはマイクロ秒(カメラ内部のクロック基準)[EventTestData]の詳細を閉じる▲ -
IC4詳細・解説
AutoFunctionsROI を設定すると、カメラは画面全体ではなく、指定した領域だけを見て自動調整を行います。つまり、その範囲の明るさや色を基準にして、露光時間やゲイン、ホワイトバランスを決めることができます。これにより、背景が明るすぎたり暗すぎたりしても影響を受けにくく、撮りたい対象物に合わせた設定が自動で選ばれるようになります。
// AutoFunctionsROIEnable:ROIを有効にする(falseだと全体画像が対象) grabber.DevicePropertyMap.SetValue("AutoFunctionsROIEnable", true); bool AutoFunctionsROIEnable = grabber.DevicePropertyMap.GetValueBool("AutoFunctionsROIEnable"); // AutoFunctionsROIPreset:ROI設定のプリセット(例:AutoFunctionsROIPreset_Full, AutoFunctionsROIPreset_Custom, AutoFunctionsROIPreset_Center50Pct, AutoFunctionsROIPreset_Center25Pct, AutoFunctionsROIPreset_BottomHalf, AutoFunctionsROIPreset_TopHalf grabber.DevicePropertyMap.SetValue("AutoFunctionsROIPreset", "AutoFunctionsROIPreset_Full"); string AutoFunctionsROIPreset = grabber.DevicePropertyMap.GetValueString("AutoFunctionsROIPreset"); // AutoFunctionsROILeft:ROIの左上X座標(画素単位) grabber.DevicePropertyMap.SetValue("AutoFunctionsROILeft", 480); double AutoFunctionsROILeft = grabber.DevicePropertyMap.GetValueDouble("AutoFunctionsROILeft"); // AutoFunctionsROITop:ROIの左上Y座標(画素単位) grabber.DevicePropertyMap.SetValue("AutoFunctionsROITop", 300); double AutoFunctionsROITop = grabber.DevicePropertyMap.GetValueDouble("AutoFunctionsROITop"); // AutoFunctionsROIWidth:ROIの幅(画素単位) grabber.DevicePropertyMap.SetValue("AutoFunctionsROIWidth", 960); double AutoFunctionsROIWidth = grabber.DevicePropertyMap.GetValueDouble("AutoFunctionsROIWidth"); // AutoFunctionsROIHeight:ROIの高さ(画素単位) grabber.DevicePropertyMap.SetValue("AutoFunctionsROIHeight", 600); double AutoFunctionsROIHeight = grabber.DevicePropertyMap.GetValueDouble("AutoFunctionsROIHeight");[AutoFunctionsROI]の詳細を閉じる▲ -
IC4詳細・解説
LUT Control は「ルックアップテーブル(LUT)」を使って、カメラが出力する画像の明るさや色を変える機能です。LUT は「変換表」を使って画素の値を置き換える仕組みで、例えば暗い部分を持ち上げて見やすくしたり、色を反転させたり、コントラストを強くするといったことをカメラの内部で行えます。このLUTは0~256 までの「インデックス」と、それに対応する16bitの出力値で構成されています。カメラは各画素の明るさを読み取り、上位8ビットをインデックスとして使い、下位ビットで隣同士の値を滑らかに補間して変換を行います。これにより段階的ではなく滑らかな補正が可能になります。カラー画像の場合、YUVモードでは輝度成分(Y)のみ処理されますが、BGRやBayer Rawでは全ての色チャンネルに対して同じ変換が適用されます。LUTを使うときは「LUT Enable」で有効化し、必要に応じて「LUT Index」「LUT Value」で1つずつ書き換えたり、「LUT Value All」で一括設定ができます。注意点として、LUT はガンマ補正と同じ回路を使っているため、LUT を有効にするとガンマ補正は自動的にオフになります。
// LUTSelector:対象となるLUTを選択(例:Luminance, Red, Green, Blue) grabber.DevicePropertyMap.SetValue("LUTSelector", "Luminance"); string LUTSelector = grabber.DevicePropertyMap.GetValueString("LUTSelector"); // LUTEnable:選択したLUTを有効化(true:有効, false:無効) grabber.DevicePropertyMap.SetValue("LUTEnable", false); bool LUTEnable = grabber.DevicePropertyMap.GetValueBool("LUTEnable"); // LUTIndex:読み書き対象のLUTインデックス(0~255 など) grabber.DevicePropertyMap.SetValue("LUTIndex", 128); double LUTIndex = grabber.DevicePropertyMap.GetValueDouble("LUTIndex"); // LUTValue:現在の LUTIndex に対応する出力値( 0~255) grabber.DevicePropertyMap.SetValue("LUTValue", 0); double LUTValue = grabber.DevicePropertyMap.GetValueDouble("LUTValue");[LUT Control]の詳細を閉じる▲ -
IC4詳細・解説
User Set Controlは、カメラの撮影条件を「プリセット」として保存・呼び出しできる機能で、よく使う設定を素早く再現するのに役立ちます。まず UserSetSelectorで対象プリセットを選択します(例:工場出荷時の "Default"、ユーザー保存用の "UserSet1"、"UserSet2" など)。UserSetLoadに"Execute"を指定すると、そのプリセットが即時に読み込まれ、以後はその条件で動作します。現在の設定を保存したい場合はUserSetSaveに"Execute"を渡すと、選択中のプリセットへ上書き保存され、同じ条件を再利用できます。これにより、シーンごとに細かな再調整を行う手間が減り、安定した撮影条件の再現性が向上します。
一方、アプリケーション開発では、カメラ内のユーザーセットではなく、PC 側で状態をXMLファイルとして管理する方法が一般的です。IC Imaging Control の DeviceOpenFromState / DeviceSaveState を使えば、設定をファイル化してバージョン管理や配布が容易になります。Class Grabber
IC Imaging Control Ver4.0(.NET) APIリファレンスマニュアル// UserSetSelector:操作対象のユーザー設定プリセットを選択 // 例:"Default", "UserSet1", "UserSet2"(カメラによって異なる) grabber.DevicePropertyMap.SetValue("UserSetSelector", "UserSet1"); string UserSetSelector = grabber.DevicePropertyMap.GetValueString("UserSetSelector"); // UserSetLoad:選択したユーザー設定をカメラに読み込む(=その設定で即時動作開始) // "Execute" を渡すことで即時反映される grabber.DevicePropertyMap.SetValue("UserSetLoad", "Execute"); // UserSetSave:現在の設定を選択中のプリセットに保存(次回以降の電源ONでも保持されることあり) // こちらも "Execute" を指定する grabber.DevicePropertyMap.SetValue("UserSetSave", "Execute"); // UserSetDefault:カメラの起動時に自動読み込みされるプリセットを指定 // 例:"Default", "UserSet1" など、UserSetSelectorと同じ値 grabber.DevicePropertyMap.SetValue("UserSetDefault", "UserSet1"); string UserSetDefault = grabber.DevicePropertyMap.GetValueString("UserSetDefault");[User Set Control]の詳細を閉じる▲ -
IC4詳細・解説
FileAccessControlは、カメラ内部に格納できるユーザーファイルやカスタムデータを操作するための仕組みで、撮影パラメータだけでなくキャリブレーション情報や補正テーブルなどの独自データを自由に保存・読み込みできます。使用するにはまずFileSelectorで対象のファイル(例:UserFile0)を指定し、FileOperationSelectorで処理内容(Open、Read、Write、Deleteなど)を決め、FileOperationExecuteを実行します。読み出しや書き込みの結果はFileAccessBufferというプロパティを通じてやり取りされます。たとえばReadを実行するとカメラ内部のデータがFileAccessBufferに転送され、アプリケーション側でこのバッファを取得してPCのメモリやファイルに書き出すことで利用できるようになります。Writeの場合はアプリケーションがFileAccessBufferにデータを書き込み、それをカメラに送るという手順です。これによりカメラ本体に任意のデータを保持できます。
// FileSelector:操作対象のファイルを選択 // 例:UserFile0, UserFile1, UserFile2 など(カメラに依存) string FileSelector = grabber.DevicePropertyMap.GetValueString("FileSelector"); grabber.DevicePropertyMap.SetValue("FileSelector", "UserFile0"); // FileOperationSelector:操作内容を選択Open, Close, Read, Write, Delete grabber.DevicePropertyMap.SetValue("FileOperationSelector", "Open"); string FileOperationSelector = grabber.DevicePropertyMap.GetValueString("FileOperationSelector"); // FileOperationExecute:実際に選択した操作を実行 grabber.DevicePropertyMap.ExecuteCommand("FileOperationExecute"); // FileOpenMode:ファイルを開く際のモード("Read", "Write", "ReadWrite") string FileOpenMode = grabber.DevicePropertyMap.GetValueString("FileOpenMode"); // FileAccessOffset:ファイル読み書きのバイトオフセット位置を指定 double FileAccessOffset = grabber.DevicePropertyMap.GetValueDouble("FileAccessOffset"); // FileAccessLength:読み書きするデータ長(バイト数)を指定 grabber.DevicePropertyMap.SetValue("FileAccessLength", 0); double FileAccessLength = grabber.DevicePropertyMap.GetValueDouble("FileAccessLength"); // FileOperationStatus:現在のファイル操作状態 Success, Failure string FileOperationStatus = grabber.DevicePropertyMap.GetValueString("FileOperationStatus"); // FileOperationResult:最後のファイル操作の結果 string FileOperationResult = grabber.DevicePropertyMap.GetValueString("FileOperationResult"); // FileSize:選択されたファイルの全体サイズ(バイト単位) double FileSize = grabber.DevicePropertyMap.GetValueDouble("FileSize");[File Access Control]の詳細を閉じる▲ -
IC4詳細・解説
Chunk Data Control は、カメラが出力する画像フレームに追加の「メタデータ」を埋め込む仕組みを制御する機能です。通常、Chunk Dataを有効化すると、各フレームに撮影条件や内部状態といった補足情報を一緒に付与できます。例えば、露光時間(ChunkExposureTime)、ゲイン(ChunkGain)があります。これらは後処理や解析の際に画像と紐づけて利用できます。 使用するには、まずChunkModeActiveを有効化してチャンク出力を許可することで、選択した情報が各フレームに記録されるようになります。埋め込まれたデータは画像バッファの一部として受け取れるため、IC4 SDKのFrameQueueSinkやバッファ操作のAPI(connect_chunkdata)を使って取り出すことが可能です。
// Chunk出力を有効化(画像バッファにメタデータを埋め込む) grabber.DevicePropertyMap.SetValue("ChunkModeActive", true); bool ChunkModeActive = grabber.DevicePropertyMap.GetValueBool("ChunkModeActive"); // ChunkSelector:埋め込みたいチャンク項目を選択(例:Image) grabber.DevicePropertyMap.SetValue("ChunkSelector", "Image"); string ChunkSelector = grabber.DevicePropertyMap.GetValueString("ChunkSelector"); // ChunkEnable:選択したChunk項目を有効にする bool ChunkEnable = grabber.DevicePropertyMap.GetValueBool("ChunkEnable");[Chunk Data Control]の詳細を閉じる▲ -
IC4詳細・解説
Software Transform Controlは、カメラの画像処理機能をオンにするとコントラスト調整やシャープネス強調、ノイズ除去、WDR(ワイドダイナミックレンジ)補正といった画像処理が有効になります。これらはハードウェア内部で処理されるため、PC側で追加の画像処理を行う必要がなく、リアルタイムで効果を確認できます。さらに、ShowOverlayをtrue に設定すれば、ライブビュー画面上にカメラのドライバー情報や解像度、フレームレート、フレーム数といった情報を重ねて表示することができ、撮影状況を確認しながら調整できます。
// SoftwareTransformEnable:ソフトウェアベースの画像反転・回転などを有効にする(true: 有効, false: 無効) // 主に画像の上下・左右反転、90度回転などが含まれる(IC4でサポートされている場合) grabber.DevicePropertyMap.SetValue("SoftwareTransformEnable", true); bool SoftwareTransformEnable = grabber.DevicePropertyMap.GetValueBool("SoftwareTransformEnable"); // Contrast:画像全体のコントラストを調整(例:0.0〜4.0 などカメラ依存) // 値を大きくすると明暗の差が強調される grabber.DevicePropertyMap.SetValue("Contrast", 0); double Contrast = grabber.DevicePropertyMap.GetValueDouble("Contrast"); // Sharpness:輪郭の強調度(例:0〜255 などカメラ依存) // 高くするとエッジが強調され、ノイズも増える可能性あり grabber.DevicePropertyMap.SetValue("Sharpness", 0); double Sharpness = grabber.DevicePropertyMap.GetValueDouble("Sharpness"); // Denoise:ノイズ低減処理の強さ(0.0〜1.0 などカメラ依存) // 値が大きいほど平滑化が強くなる(ただしディテールも失われる) grabber.DevicePropertyMap.SetValue("Denoise", 0); double Denoise = grabber.DevicePropertyMap.GetValueDouble("Denoise"); // ShowOverlay:画像にオーバーレイ(クロスヘア・ROI枠・注釈など)を表示する(true: 表示, false: 非表示) // 主に表示確認用。録画画像には影響しないことが多い grabber.DevicePropertyMap.SetValue("ShowOverlay", false); bool ShowOverlay = grabber.DevicePropertyMap.GetValueBool("ShowOverlay");ShowOverlayしたときの画像
[Software Transform Control]の詳細を閉じる▲ -
IC4詳細・解説
Tone Mapping は、センサーが捉えた広い明暗の情報を人の目で見やすい範囲に圧縮し、逆光や白飛び・黒つぶれを抑えて階調を整える処理です。Tone Mappingを有効にすると自動で補正が行われ、Tone Mapping AutoをONにすればカメラがシーンに応じて補正量を自動調整します。補正のかかり具合は Tone_Mapping_Intensity(0.0〜1.0)で調整でき、値を大きくすると明るい部分と暗い部分の差が小さくなり、全体がなだらかに見える仕上がりになります。さらに、Tone_Mapping_Global_Brightness_Factor を使うことで画像全体の明るさを細かく調整できます。
// ToneMappingEnable:トーンマッピング(HDR補正)の有効化(true: 有効, false: 無効) // 明暗差の大きい映像を視認性よく補正する処理。 grabber.DevicePropertyMap.SetValue("ToneMappingEnable", true); bool ToneMappingEnable = grabber.DevicePropertyMap.GetValueBool("ToneMappingEnable"); // ToneMappingIntensity:トーンマッピングの強度(0.0 ~ 1.0) // 値が大きいほど明るい部分と暗い部分の差が少なくなる grabber.DevicePropertyMap.SetValue("ToneMappingIntensity", 0.7); double ToneMappingIntensity = grabber.DevicePropertyMap.GetValueDouble("ToneMappingIntensity"); // ToneMappingGlobalBrightness:トーンマッピング処理後の全体的な明るさ // 画像全体の明るさを調整したい場合に使用 grabber.DevicePropertyMap.SetValue("ToneMappingGlobalBrightness", 0.5); double ToneMappingGlobalBrightness = grabber.DevicePropertyMap.GetValueDouble("ToneMappingGlobalBrightness");[Tone Mapping]の詳細を閉じる▲


