3.4. Depth Settings
3.4.1. Preset Configuration
Gemini 330 series 3D cameras have built-in a variety of predefined Presets. For the specific application scenarios of 3D cameras, users can use the Orbbec Viewer tool to select the best Presets.
The method of loading the preset is as follows:
Pipeline pipeline = new Pipeline();
Device device = pipeline.GetDevice();
device.LoadPreset("Default");
3.4.2. Set Depth AE
Pipeline pipeline = new Pipeline();
Device device = pipeline.GetDevice();
// True open depth AE, False: close depth AE
device.SetBoolProperty(PropertyId.OB_PROP_DEPTH_AUTO_EXPOSURE_BOOL, true);
3.4.3. Set Depth Exposure/Gain
Pipeline pipeline = new Pipeline();
Device device = pipeline.GetDevice();
// Close IR AE
device.SetBoolProperty(PropertyId.OB_PROP_DEPTH_AUTO_EXPOSURE_BOOL, false);
// set IR exposure
device.SetIntProperty(PropertyId.OB_PROP_DEPTH_EXPOSURE_INT, 100);
// set IR gain
device.SetIntProperty(PropertyId.OB_PROP_DEPTH_GAIN_INT, 64);
3.4.4. Set Min and Max Depth
Set the min and max values of Depth, and all Depth outside this range will be set to 0.
Notes: For the Gemini 330 series, max and min depth values are set through post-processing with the ThresholdFilter, as follows:
// create threshold filter
ThresholdFilter filter = new ThresholdFilter();
// set min and max depth,unit: mm
filter.SetValueRange(100, 1000);
// get depth frame
var frames = pipeline.WaitForFrames(100);
var depthFrame = frames?.GetDepthFrame();
// call threshold filter
var newDepthFrame = filter.Process(depthFrame);
3.4.5. D2D (Disparity to depth)
Disparity to depth is an image processing technique used to convert disparity information into depth information.
3.4.5.1. Hardware D2D
Hardware D2D refers to disparity-to-depth conversion implemented internally within the device. Devices such as the Gemini 330 series, Gemini 2, Gemini 2 L, Astra 2 support this feature.
Pipeline pipeline = new Pipeline();
Device device = pipeline.GetDevice();
// Parameters: True to turn on hardware D2D, False to turn off hardware D2D
device.SetBoolProperty(PropertyId.OB_PROP_DISPARITY_TO_DEPTH_BOOL, true);
3.4.5.2. Software D2D
Software D2D refers to disparity-to-depth conversion implemented within the SDK. All devices support Software D2D except for TOF devices like Femto Mega and Femto Bolt.
Pipeline pipeline = new Pipeline();
Device device = pipeline.GetDevice();
// Parameters: True to turn on Software D2D, False to turn off Software D2D
device.SetBoolProperty(PropertyId.OB_PROP_SDK_DISPARITY_TO_DEPTH_BOOL, true);
3.4.5.3. Set the Unit of Depth
The precision of depth measurements is determined by the unit of pixel values in the depth data frame. By adjusting the depth unit, the accuracy of depth measurements can be modified. For instance, if the unit is set to 0.2mm, an object at a distance of 1000mm will have a pixel value of 5000 in the output depth data frame (as 5000 multiplied by 0.2mm equals 1000mm). Similarly, if the unit is set to 0.1mm, the pixel value will be 10000.
Gemini 2/2L, Astra 2,Gemini 330 series support the setting of Depth units. Gemini 2/2L sets the Depth unit as follows:
Among them: DepthPrecisionLevel.OB_PRECISION_1MM: < 1mm
DepthPrecisionLevel.OB_PRECISION_0MM8: < 0.8mm
DepthPrecisionLevel.OB_PRECISION_0MM4: < 0.4mm
DepthPrecisionLevel.OB_PRECISION_0MM1: < 0.1mm
DepthPrecisionLevel.OB_PRECISION_0MM2: < 0.2mm
DepthPrecisionLevel.OB_PRECISION_0MM5: < 0.5mm
DepthPrecisionLevel.OB_PRECISION_0MM05: < 0.05mm
Pipeline pipeline = new Pipeline();
Device device = pipeline.GetDevice();
// Parameters: True to turn on Software D2D, False to turn off Software D2D
device.SetIntProperty(PropertyId.OB_PROP_DEPTH_PRECISION_LEVEL_INT, (int)DepthPrecisionLevel.OB_PRECISION_1MM);
The Gemini 330 series supports setting the Depth unit as follows:
Pipeline pipeline = new Pipeline();
Device device = pipeline.GetDevice();
// Parameters: True to turn on Software D2D, False to turn off Software D2D
device.SetFloatProperty(PropertyId.OB_PROP_DEPTH_UNIT_FLEXIBLE_ADJUSTMENT_FLOAT, 0.1f);
Notes: The Gemini 330 series Depth unit supports setting arbitrary units, with the parameter as a float.