![]() |
ImFusion SDK 4.3
|
#include <RGBD/Include/ImFusion/RGBD/SurfaceReconstructionData.h>
Data model for surface reconstruction. More...
Inheritance diagram for SurfaceReconstructionData:Data model for surface reconstruction.
This class encapsulates all configuration parameters for RGB-D surface reconstruction. It provides settings for volume size and resolution, preprocessing, registration (ICP), integration, prediction, rendering, texturing, and multi-sensor setups.
Usage:
configure() and configuration() for serialization.Important aspects:
Example:
Public Types | |
| enum class | ReconstructionMethod { VolumetricFusion } |
Public Member Functions | |
| void | reset (bool partial=false) |
| Set default values. | |
| void | setVolumeResolution (const vec3i &value) |
| Set volume resolution in voxels in each spatial dimension. | |
| vec3i | volumeResolution () const |
| void | setUnlimitedVolumeSize (bool value) |
| Set unlimited volume size. | |
| bool | unlimitedVolumeSize () const |
| void | setVolumeSize (const vec3 &value) |
| Set volume size in world units (usually mm) in each spatial dimension. | |
| vec3 | volumeSize () const |
| void | setVolumeTransform (const mat4 &value) |
| Set initial transformation for moving reconstruction volume (centered on world origin) to reference sensor camera coordinate system. | |
| mat4 | volumeTransform () const |
| Get transformation from world to local camera system. | |
| void | setVolumeIncludeColor (bool value) |
| Control whether to include color in reconstruction. | |
| bool | volumeIncludeColor () const |
| void | setPreprocessingComputeCameraNormals (bool value) |
| Control whether to compute cam normals. | |
| bool | preprocessingComputeCameraNormals () const |
| void | setPreprocessingUseBilateralFilter (bool use) |
| Control whether to use the bilateral filter. | |
| bool | preprocessingUseBilateralFilter () const |
| void | setPreprocessingBilateralFilterSize (int value) |
| Set size of bilateral filter kernel applied to depth image before integrating it. | |
| int | preprocessingBilateralFilterSize () const |
| void | setPreprocessingBilateralFilterSpaceSigma (double value) |
| Set spatial sigma of bilateral filter in pixels. | |
| double | preprocessingBilateralFilterSpaceSigma () const |
| void | setPreprocessingBilateralFilterDepthSigma (double value) |
| Set depth sigma of bilateral filter in world units (usually mm) | |
| double | preprocessingBilateralFilterDepthSigma () const |
| void | setIcpLevels (int value) |
| Set number of pyramid levels for ICP alignment. Each pyramid level is downsampled from the previous level by a factor of two. | |
| int | icpLevels () const |
| void | setIcpMaxIterations (const std::vector< int > &value) |
| Set maximum iterations for each pyramid level. Levels are sorted in increasing size, i.e. first entry refers to lowest resolution level. | |
| std::vector< int > | icpMaxIterations () const |
| void | setIcpMinMatches (int value) |
| Set minimum number of matches required to compute ICP. | |
| int | icpMinMatches () const |
| void | setIcpDistanceThreshold (double value) |
| Set distance threshold in world units (usually mm) between points to be considered for matching. | |
| double | icpDistanceThreshold () const |
| void | setIcpMatchNeighborhoodHalfWinSize (int value) |
| Set half of the window size of neighborhood in px when searching for the best matching point for ICP. | |
| int | icpMatchNeighborhoodHalfWinSize () const |
| void | setIcpAngleThreshold (double value) |
| Set minimum angle in degrees between point normals to be considered for matching. | |
| double | icpAngleThreshold () const |
| void | setIcpUpdateThreshold (double value) |
| Set threhsold for change in error function between two ICP iterations. | |
| double | icpUpdateThreshold () const |
| void | setIcpUseCurvature (bool value) |
| Only use high curvature points for ICP alignment. Experimental. | |
| bool | icpUseCurvature () const |
| void | setIcpCurvatureThreshold (double value) |
| Set threshold for curvature when using curvature-based point removal When set to smaller zero the ICP point threshold is used for selecting the curvature threshold. | |
| double | icpCurvatureThreshold () const |
| void | setIcpPointThreshold (double value) |
| Sorts curvate and takes curvature at passed in percentile (normalized to [0;1]) as curvature threshold. | |
| double | icpPointThreshold () const |
| void | setIcpRotationThreshold (double value) |
| Set threshold of rotation in degrees of ICP output after which the estimated pose is considered wrong. | |
| double | icpRotationThreshold () const |
| void | setIcpTranslationThreshold (double value) |
| Set threshold of translation in world units (usually mm) of ICP output after which the estimated pose is considered wrong. | |
| double | icpTranslationThreshold () const |
| void | setIcpOptimizationParameters (const Eigen::Matrix< int, 6, 1 > &value) |
| Set ICP optimization parameters (rx, ry, rz, tx, ty, tz) | |
| Eigen::Matrix< int, 6, 1 > | icpOptimizationParameters () const |
| void | setIntegrationMaxDepthDiff (float value) |
| Set maximum depth difference used in integration (in depth discontinuity map computation) | |
| float | integrationMaxDepthDiff () const |
| void | setIntegrationMaxWeight (int value) |
| Set maximum weight used in integration. | |
| int | integrationMaxWeight () const |
| void | setIntegrationMinTruncation (double value) |
| Set distance in front of current surface estimate until which new measurements will be integrated. | |
| double | integrationMinTruncation () const |
| void | setIntegrationMaxTruncation (double value) |
| Set distance behind current surface estimate until which new measurements will be integrated. | |
| double | integrationMaxTruncation () const |
| void | setIntegrationMovementBasedUpdate (bool value) |
| Control whether new frames with only small pose changes will be integrated. | |
| bool | integrationMovementBasedUpdate () const |
| void | setPredictionTruncationFactor (double value) |
| Controls step size of scene prediction from volume. | |
| double | predictionTruncationFactor () const |
| void | setSceneColor (const vec3 &color) |
| Sets color of rendered preview. | |
| vec3 | sceneColor () const |
| void | setRenderPreviewFromColorCamera (bool value) |
| bool | renderPreviewFromColorCamera () const |
| void | setSensorCount (int value) |
| Set number of sensors used in reconstruction. | |
| int | sensorCount () const |
| void | setDepthImageWidth (int sensor, int value) |
| Set depth image width. | |
| int | depthImageWidth (int sensor) const |
| void | setDepthImageHeight (int sensor, int value) |
| Set depth image height. | |
| int | depthImageHeight (int sensor) const |
| void | setColorImageWidth (int sensor, int value) |
| Set color image width. | |
| int | colorImageWidth (int sensor) const |
| void | setColorImageHeight (int sensor, int value) |
| Set color image height. | |
| int | colorImageHeight (int sensor) const |
| void | setDepthImageIntrinsics (int sensor, const mat3 &value) |
| Set intrinsic paramters of depth image. Image is assumed to be undistorted. | |
| bool | depthImageIntrinsics (int sensor, mat3 &value) const |
| void | setColorImageIntrinsics (int sensor, const mat3 &value) |
| Set intrinsic parameters of color image. Image is assumed to be undistorted. | |
| bool | colorImageIntrinsics (int sensor, mat3 &value) const |
| void | setDepthToColorTransform (int sensor, const mat4 &value) |
| Set transformation matrix for going from depth sensor to color sensor camera coordinate system. | |
| bool | depthToColorTransform (int sensor, mat4 &value) const |
| void | setSensorT (int sensor, const mat4 &value) |
| Set transformation from specified sensor to reference sensor coordinate system. Not needed for single sensor use. | |
| bool | sensorT (int sensor, mat4 &value) const |
| void | setDepthCutoff (int sensor, int value) |
| Set depth from sensor in world units (usually mm) after which points will not be considered in reconstruction. | |
| int | depthCutoff (int sensor) const |
| void | setUseDepthCutoff (int sensor, bool value) |
| Control whether to use depth cutoff. | |
| bool | useDepthCutoff (int sensor) const |
| void | setOrthographicSensor (int sensor, bool value) |
| bool | orthographicSensor (int sensor) const |
| void | setColorScene (bool value) |
| Control whether the preview image is colored from color image or used uniform Phong shading on the surface. | |
| bool | colorScene () const |
| void | setPreprocessingDepthThreshold (double value) |
| Set depth threshold to avoid computing properties (tangent map and normal map) over depth-discontinuities. | |
| double | preprocessingDepthThreshold () const |
| void | setActive (bool value) |
| Set whether reconstruction is active. Certain parameters cannot be changed during reconstruction. | |
| bool | active () const |
| void | addListener (SurfaceReconstructionDataListener *listener) |
| Add listener which gets notified when parameters change. | |
| void | removeListener (const SurfaceReconstructionDataListener *listener) |
| void | configure (const Properties *p) override |
| Configure this object instance by de-serializing the given Properties. | |
| void | configuration (Properties *p) const override |
| Serialize the current object configuration into the given Properties object. | |
| void | setIcpSvdThreshold (double value) |
| Registration settings. | |
| double | icpSvdThreshold () const |
| void | setTexturingSkipSimilarFrames (bool value) |
| bool | texturingSkipSimilarFrames () const |
| void | setTexturingRotationThreshold (double value) |
| double | texturingRotationThreshold () const |
| void | setTexturingTranslationThreshold (double value) |
| double | texturingTranslationThreshold () const |
| void | setTexturingSkip (int value) |
| int | texturingSkip () const |
| void | setTexturingDepthMatchThreshold (double value) |
| double | texturingDepthMatchThreshold () const |
| void | setTexturingErosionRadius (int value) |
| int | texturingErosionRadius () const |
| void | setRecoMethod (ReconstructionMethod m) |
| ReconstructionMethod | recoMethod () const |
| bool | supportsLimitedVolume () const |
| bool | supportsUnlimitedVolume () const |
Public Member Functions inherited from Configurable | |
| virtual void | configureDefaults () |
| Retrieve the properties of this object, replaces values with their defaults and sets it again. | |
| void | registerParameter (ParameterBase *param) |
| Register the given Parameter or SubProperty, so that it will be configured during configure()/configuration(). | |
| void | unregisterParameter (const ParameterBase *param) |
| Remove the given Parameter or SubProperty from the list of registered parameters. | |
| Configurable (const Configurable &rhs) | |
| Configurable (Configurable &&rhs) noexcept | |
| Configurable & | operator= (const Configurable &) |
| Configurable & | operator= (Configurable &&) noexcept |
Additional Inherited Members | |
Public Attributes inherited from Configurable | |
| Signal | signalParametersChanged |
Emitted whenever one of the registered Parameters' or SubPropertys' signalValueChanged signal was emitted. | |
Protected Attributes inherited from Configurable | |
| std::vector< Param > | m_params |
| List of all registered Parameter and SubProperty instances. | |
|
strong |
| void setPreprocessingBilateralFilterSize | ( | int | value | ) |
Set size of bilateral filter kernel applied to depth image before integrating it.
This parameter controls the depth value smoothing. Significantly affects runtime of preprocessing step.
| void setIcpUpdateThreshold | ( | double | value | ) |
Set threhsold for change in error function between two ICP iterations.
If the change is smaller the optimization will be terminated even if the number of runs has not been reached.
| void setIcpRotationThreshold | ( | double | value | ) |
Set threshold of rotation in degrees of ICP output after which the estimated pose is considered wrong.
Used to control robustness of tracking.
| void setIcpTranslationThreshold | ( | double | value | ) |
Set threshold of translation in world units (usually mm) of ICP output after which the estimated pose is considered wrong.
Used to control robustness of tracking.
|
overridevirtual |
Configure this object instance by de-serializing the given Properties.
The default implementation will do so automatically for all registered Parameter and SubProperty instances.
Reimplemented from Configurable.
|
overridevirtual |
Serialize the current object configuration into the given Properties object.
The default implementation will do so automatically for all registered Parameter and SubProperty instances.
Reimplemented from Configurable.