ReconstructMe SDK  1.1.739-75658
Real-time 3D reconstruction engine
 All Classes Files Functions Typedefs Enumerations Enumerator Groups Pages
Options Bindings

Lists all available option bind methods. More...

reme_error_t reme_context_bind_compile_options (reme_context_t c, reme_options_t o)
 Access the compile time options.
 
reme_error_t reme_context_bind_opencl_info (reme_context_t c, reme_options_t o)
 Access platform OpenCL information.
 
reme_error_t reme_license_bind_hardware_hashes (reme_context_t c, reme_license_t l, reme_options_t o)
 Access hardware hashes for generating single user licenses bound to specific hardware.
 
reme_error_t reme_sensor_bind_camera_options (reme_context_t c, reme_sensor_t s, reme_options_t o)
 Access the sensor specific options.
 
reme_error_t reme_sensor_bind_track_options (reme_context_t c, reme_sensor_t s, reme_options_t o)
 Access the sensor track options.
 
reme_error_t reme_recorder_bind_file_options (reme_context_t c, reme_recorder_t r, reme_options_t o)
 Access the recorder specific file options.
 
reme_error_t reme_calibrator_bind_options (reme_context_t c, reme_calibrator_t cb, reme_options_t o)
 Access the calibration options.
 
reme_error_t reme_calibrator_bind_intrinsics (reme_context_t c, reme_calibrator_t cb, reme_options_t o)
 Access the calibration results.
 
reme_error_t reme_surface_bind_poisson_options (reme_context_t c, reme_surface_t s, reme_options_t o)
 Access the poisson reconstruction options.
 
reme_error_t reme_surface_bind_decimation_options (reme_context_t c, reme_surface_t s, reme_options_t o)
 Access the surface decimation options.
 

Detailed Description

Lists all available option bind methods.

This page lists all known methods that bind reme_options_t to specific option sets.

Function Documentation

reme_error_t reme_context_bind_compile_options ( reme_context_t  c,
reme_options_t  o 
)

Access the compile time options.

Associated Protocol Buffers Specification
import "reconstructme/core/tracking_settings.proto";
package LibReconstructMe;
// Settings passed to compilation
message compile_settings {
// Device id to carry out computations
optional int32 device_id = 1 [default = -1];
// Camera
optional int32 camera_window_size_x = 2 [default = 7];
optional int32 camera_window_size_y = 3 [default = 7];
optional bool enable_distortion_correction = 4 [default = false];
// Volume
message min_3f {
required float x = 1 [default = -500];
required float y = 2 [default = -500];
required float z = 3 [default = 400];
}
// Point3f for max-corner
// Note, max_3f and min_3f are custom
// messages to provide different defaults.
message max_3f {
required float x = 1 [default = 500];
required float y = 2 [default = 500];
required float z = 3 [default = 1400];
}
message res_3i {
required int32 x = 1 [default = 256];
required int32 y = 2 [default = 256];
required int32 z = 3 [default = 256];
}
optional res_3i volume_size = 5;
optional min_3f volume_min = 6;
optional max_3f volume_max = 7;
// Integration
optional float integrate_truncation = 8 [default = 15];
optional int32 integrate_max_weight = 9 [default = 32];
// Extraction
optional float extract_step_fact = 10 [default = 0.5];
optional float gradient_step_fact = 11 [default = 0.25];
// Alignment
optional int32 icp_max_iter = 12 [default = 15];
optional float icp_max_point_dist = 13 [default = 20];
optional float icp_max_normal_angle = 14 [default = 30];
optional float icp_truncate_dist = 15 [default = 1500];
optional int32 icp_pyramid_levels = 16 [default = 3];
optional bool enable_smooth_normals = 17 [default = false];
// Optimization
optional bool enable_optimizations = 18 [default = true];
}
Parameters
cA valid context object
oA valid options binding
Return values
REME_ERROR_SUCCESSOn success
REME_ERROR_UNSPECIFIEDOn failure
Examples:
example_reconstructmesdk_options.cpp.
reme_error_t reme_context_bind_opencl_info ( reme_context_t  c,
reme_options_t  o 
)

Access platform OpenCL information.

Associated Protocol Buffers Specification
package LibOpenCLBridge;
message opencl_info {
// Defines the type of the device
enum device_type {
CPU = 0;
GPU = 1;
}
// Defines a device
message device {
optional string name = 1 [default = "Unknown device name"];
optional string vendor = 2 [default = "Unknown device vendor"];
optional device_type type = 3;
}
repeated device devices = 1;
}
Parameters
cA valid context object
oA valid options binding
Return values
REME_ERROR_SUCCESSOn success
REME_ERROR_UNSPECIFIEDOn failure
Examples:
example_reconstructmesdk_options.cpp.
reme_error_t reme_license_bind_hardware_hashes ( reme_context_t  c,
reme_license_t  l,
reme_options_t  o 
)

Access hardware hashes for generating single user licenses bound to specific hardware.

Associated Protocol Buffers Specification
// Hardware hashes
message hardware {
repeated string hashes = 1;
}
Parameters
cA valid context object
lA valid license object
oA valid options binding
Return values
REME_ERROR_SUCCESSOn success
REME_ERROR_UNSPECIFIEDOn failure
reme_error_t reme_sensor_bind_camera_options ( reme_context_t  c,
reme_sensor_t  s,
reme_options_t  o 
)

Access the sensor specific options.

Associated Protocol Buffers Specification
Depending on the sensor chosen on create, different specs are needed, since each sensor supports a different set of parameters.

For openni sensors

import "rgbdsensor/intrinsics.proto";
package LibRGBDSensor;
// OpenNI sensor configuration
message openni_sensor_config {
// Default driver model
optional string driver = 1 [default = "openni"];
// USB device id
optional int32 usb_device_id = 2 [default = 0];
// Camera intrinsics
optional LibRGBDSensor.intrinsics depth_intrinsics = 3;
// Enable IR mode
optional bool enable_ir = 4 [default = false];
// Enable RGB mode
optional bool enable_rgb = 5 [default = true];
// Infrared raw intensity multiplier
optional int32 ir_alpha = 6 [default = 1];
}

For mskinect sensors

import "rgbdsensor/intrinsics.proto";
package LibRGBDSensor;
// Kinect sensor configuration based on MSKinect driver
message mskinect_sensor_config {
// Default driver model
optional string driver = 1 [default = "mskinect"];
// USB device id
optional int32 usb_device_id = 2 [default = 0];
// Camera intrinsics
optional LibRGBDSensor.intrinsics depth_intrinsics = 3;
// Enable or disable 'Near Mode'
optional bool enable_near_mode = 4 [default = true];
// Enable RGB mode
optional bool enable_rgb = 5 [default = true];
// Enable IR stream mode
optional bool enable_ir = 6 [default = false];
// Enable IR projector
optional bool enable_ir_projector = 7 [default = true];
// Infrared raw intensity multiplier
optional int32 ir_alpha = 8 [default = 1];
}

For file sensors

import "rgbdsensor/intrinsics.proto";
package LibRGBDSensor;
// OpenNI sensor configuration
message file_sensor_config {
message frame_size {
optional int32 width = 1 [default = 640];
optional int32 height = 2 [default = 480];
};
// Default driver model
optional string driver = 1 [default = "file"];
// Path to file containing depth information
optional string depth_file = 2 [default = "reconstructme.depths.gz"];
// Path to file containing color information
optional string color_file = 3 [default = "reconstructme.avi"];
// Frame size of depth file
optional frame_size depth_size = 4;
// Frame size of color file
optional frame_size color_size = 5;
// Camera depth intrinsics
optional LibRGBDSensor.intrinsics depth_intrinsics = 6;
}

Common to all configurations above is the depth_intrinsics field. It is mendatory for reconstruction and has the following structure

package LibRGBDSensor;
// Camera intrinsics
message intrinsics {
// Camera matrix
optional double fx = 1 [default = 571.26];
optional double fy = 2 [default = 571.26];
optional double cx = 3 [default = 320];
optional double cy = 4 [default = 240];
// Radial distortion coefficients
// Set to zero to disable certain calculations
optional double k1 = 5 [default = 0];
optional double k2 = 6 [default = 0];
optional double k3 = 7 [default = 0];
// Tangential distortion coefficients
// Set to zero to disable certain calculations
optional double p1 = 8 [default = 0];
optional double p2 = 9 [default = 0];
}
Note
Support for radial and tangential distortion parameters needs to be enabled using the reme_context_bind_compile_options.
Changing camera options without a call to reme_sensor_open has no effect.
Parameters
cA valid context object
sA valid sensor object
oA valid options binding object
Return values
REME_ERROR_SUCCESSOn success
REME_ERROR_UNSPECIFIEDOn failure
Examples:
example_reconstructmesdk_calibration.cpp, example_reconstructmesdk_recorder.cpp, and example_reconstructmesdk_sensor_multi_independent.cpp.
reme_error_t reme_sensor_bind_track_options ( reme_context_t  c,
reme_sensor_t  s,
reme_options_t  o 
)

Access the sensor track options.

Associated Protocol Buffers Specification
package LibReconstructMe;
// Settings that drive the update volume step
message tracking_settings {
// Maximum allowed average SDF change of voxels when
// tracking is established
optional float sdf_change_on_track = 1 [default = 0.08];
// Maximum allowed average SDF change of voxels when
// no tracking is present
optional float sdf_change_no_track = 2 [default = 0.05];
}
Parameters
cA valid context object
sA valid sensor object
oA valid options binding object.
Return values
REME_ERROR_SUCCESSOn success
REME_ERROR_UNSPECIFIEDOn failure
reme_error_t reme_recorder_bind_file_options ( reme_context_t  c,
reme_recorder_t  r,
reme_options_t  o 
)

Access the recorder specific file options.

Associated Protocol Buffers Specification
// Recorder options
message recorder_options {
// Where to save the depth file
optional string depth_file = 1 [default = "reconstructme.depths.gz"];
// Where to save the color file if supported
optional string color_file = 2 [default = "reconstructme.avi"];
// Where to save the file_sensor configuration file
// Note that the recorder will copy the relevant sensor intrinsics
// from the real sensor
optional string file_sensor_config = 3 [default = "file_sensor.txt"];
}
Parameters
cA valid context object
rA valid recorder object
oA valid options binding object
Return values
REME_ERROR_SUCCESSOn success
REME_ERROR_UNSPECIFIEDOn failure
Examples:
example_reconstructmesdk_recorder.cpp.
reme_error_t reme_calibrator_bind_options ( reme_context_t  c,
reme_calibrator_t  cb,
reme_options_t  o 
)

Access the calibration options.

Associated Protocol Buffers Specification
// Calibration options for chessboards
message calibration_options {
// Number of inner corners in the width direction
optional int32 inner_count_width = 1 [default = 10];
// Number of inner corners in the height direction
optional int32 inner_count_height = 2 [default = 7];
// Length of a single square side. Defaults are are in mm for default A3 checkerboard.
optional float length_square_side = 3 [default = 33.876];
// Number of pixels to use when refining corners in the width direction
optional int32 refine_width = 4 [default = 5];
// Number of pixels to use when refining corners in the height direction
optional int32 refine_height = 5 [default = 5];
// Assume no tangential distortions
optional bool zero_tangential = 6 [default = false];
// Set k3 to zero. This is recommended except for fisheye lenses
optional bool zero_k3 = 7 [default = true];
}
Parameters
cA valid context object
cbA valid calibration object
oA valid options binding object
Return values
REME_ERROR_SUCCESSOn success
REME_ERROR_UNSPECIFIEDOn failure
reme_error_t reme_calibrator_bind_intrinsics ( reme_context_t  c,
reme_calibrator_t  cb,
reme_options_t  o 
)

Access the calibration results.

The results are provided as a new intrincis options set.

Associated Protocol Buffers Specification
package LibRGBDSensor;
// Camera intrinsics
message intrinsics {
// Camera matrix
optional double fx = 1 [default = 571.26];
optional double fy = 2 [default = 571.26];
optional double cx = 3 [default = 320];
optional double cy = 4 [default = 240];
// Radial distortion coefficients
// Set to zero to disable certain calculations
optional double k1 = 5 [default = 0];
optional double k2 = 6 [default = 0];
optional double k3 = 7 [default = 0];
// Tangential distortion coefficients
// Set to zero to disable certain calculations
optional double p1 = 8 [default = 0];
optional double p2 = 9 [default = 0];
}
Parameters
cA valid context object
cbA valid calibration object
oA valid options binding object
Return values
REME_ERROR_SUCCESSOn success
REME_ERROR_UNSPECIFIEDOn failure
Examples:
example_reconstructmesdk_calibration.cpp.
reme_error_t reme_surface_bind_poisson_options ( reme_context_t  c,
reme_surface_t  s,
reme_options_t  o 
)

Access the poisson reconstruction options.

Associated Protocol Buffers Specification
// Poisson surface generation options
message poisson_options {
optional int32 depth = 1 [default = 8];
optional int32 solver_divide = 2 [default = 8];
optional int32 iso_divide = 3 [default = 8];
optional int32 minimum_samples_per_node = 4 [default = 1];
optional float scale = 5 [default = 1];
optional bool enable_clipping = 6 [default = false];
}
Parameters
cA valid context object
sA valid surface object
oA valid options binding object
Return values
REME_ERROR_SUCCESSOn success
REME_ERROR_UNSPECIFIEDOn failure
Examples:
example_reconstructmesdk_options_type_safe.cpp, and example_reconstructmesdk_surface.cpp.
reme_error_t reme_surface_bind_decimation_options ( reme_context_t  c,
reme_surface_t  s,
reme_options_t  o 
)

Access the surface decimation options.

Associated Protocol Buffers Specification
// Mesh decimantion options
message decimation_options {
optional int32 maximum_faces = 1 [default = 100000];
optional int32 maximum_vertices = 2 [default = 0];
optional float maximum_error = 3 [default = 100000];
}
Parameters
cA valid context object
sA valid surface object
oA valid options binding object
Return values
REME_ERROR_SUCCESSOn success
REME_ERROR_UNSPECIFIEDOn failure
Examples:
example_reconstructmesdk_surface.cpp.