set_stereo_model_paramT_set_stereo_model_paramSetStereoModelParamSetStereoModelParamset_stereo_model_param (Operator)
Name
set_stereo_model_paramT_set_stereo_model_paramSetStereoModelParamSetStereoModelParamset_stereo_model_param
— Set stereo model parameters.
Signature
Description
The operator set_stereo_model_paramset_stereo_model_paramSetStereoModelParamSetStereoModelParamset_stereo_model_param
can be used to set diverse
parameters for the stereo model StereoModelIDStereoModelIDStereoModelIDstereoModelIDstereo_model_id
.
Several types of parameters can be set with this operator depending on
type of the stereo model which was specified in create_stereo_modelcreate_stereo_modelCreateStereoModelCreateStereoModelcreate_stereo_model
.
Note that no specific parameters are provided for 'points_3d'"points_3d""points_3d""points_3d""points_3d".
General parameters:
By setting GenParamNameGenParamNameGenParamNamegenParamNamegen_param_name
to one of the following values,
general stereo model parameters can be set to the value passed in
GenParamValueGenParamValueGenParamValuegenParamValuegen_param_value
:
- 'bounding_box'"bounding_box""bounding_box""bounding_box""bounding_box":
-
A tuple [x1,y1,z1,x2,y2,z2]
specifying two opposite corner
points P1=[x1,y1,z1]
and P2=[x2,y2,z2]
of a
bounding box for the reconstructions. The bounding box defines a
box in the space in the coordinate frame of the camera setup model
used for the reconstruction (specified by CameraSetupModelIDCameraSetupModelIDCameraSetupModelIDcameraSetupModelIDcamera_setup_model_id
in create_stereo_modelcreate_stereo_modelCreateStereoModelCreateStereoModelcreate_stereo_model
). The reconstruction algorithms then clip
any resulting reconstruction to this bounding box.
Furthermore, if the parameters 'min_disparity'"min_disparity""min_disparity""min_disparity""min_disparity" and
'max_disparity'"max_disparity""max_disparity""max_disparity""max_disparity" are not set manually by using
create_stereo_modelcreate_stereo_modelCreateStereoModelCreateStereoModelcreate_stereo_model
or set_stereo_model_paramset_stereo_model_paramSetStereoModelParamSetStereoModelParamset_stereo_model_param
, the
operator reconstruct_surface_stereoreconstruct_surface_stereoReconstructSurfaceStereoReconstructSurfaceStereoreconstruct_surface_stereo
requires a valid bounding
box for the estimation of the minimal and maximal disparity parameters
for the pairwise disparity estimation (see
set_stereo_model_image_pairsset_stereo_model_image_pairsSetStereoModelImagePairsSetStereoModelImagePairsset_stereo_model_image_pairs
for more details).
Note that the values of parameters for the fusion of surfaces are reset
to default values each time the bounding box is reset.
You can use the procedure
estimate_bounding_box_3d_reconstruction
to get initial values for the bounding box of your 3D reconstruction.
This bounding box is based on the pose of a reference calibration plate
and the cones of sight of the cameras. Later, the bounding box should be
set as tight as possible around the object that is to be to be
reconstructed.
Additionally, the procedures gen_bounding_box_object_model_3d
and gen_camera_setup_object_model_3d
can be used
to visualize your camera setup.
For a valid bounding box, P1
must be the point on the front
lower left corner and P2
on the back upper right corner of the
bounding box, i.e., x1<x2
, y1<y2
and z1<z2
.
While the surface reconstruction (see reconstruct_surface_stereoreconstruct_surface_stereoReconstructSurfaceStereoReconstructSurfaceStereoreconstruct_surface_stereo
)
will terminate in the case of an invalid bounding box, the 3D point
reconstruction algorithm (see reconstruct_points_stereoreconstruct_points_stereoReconstructPointsStereoReconstructPointsStereoreconstruct_points_stereo
)
simply ignores it, and it reconstructs all points (it can), without
clipping them. Thus, you can turn off the result clipping for the 3D
points reconstruction by passing the tuple [0,0,0,0,0,-1]
.
Note that because 'bounding_box'"bounding_box""bounding_box""bounding_box""bounding_box" is a tuple-valued parameter, it
cannot be set in a single call of set_stereo_model_paramset_stereo_model_paramSetStereoModelParamSetStereoModelParamset_stereo_model_param
together
with other model parameters (see the paragraph "A note on tuple-valued
model parameters" below).
Tuple format: [x1,y1,z1,x2,y2,z2]
- 'persistence'"persistence""persistence""persistence""persistence":
-
Enables (GenParamValueGenParamValueGenParamValuegenParamValuegen_param_value
=1) or disables
(GenParamValueGenParamValueGenParamValuegenParamValuegen_param_value
=0) the 'persistence'"persistence""persistence""persistence""persistence" mode of the
stereo model. When in persistence mode, the model stores
intermediate results of the reconstruction (only for
reconstruct_surface_stereoreconstruct_surface_stereoReconstructSurfaceStereoReconstructSurfaceStereoreconstruct_surface_stereo
), which can be inspected later
by get_stereo_model_objectget_stereo_model_objectGetStereoModelObjectGetStereoModelObjectget_stereo_model_object
and
get_stereo_model_object_model_3dget_stereo_model_object_model_3dGetStereoModelObjectModel3dGetStereoModelObjectModel3dget_stereo_model_object_model_3d
.
Note that the model might need
significant memory space in this mode. This can worsen the performance
of the reconstruction algorithms and even lead to running out of
memory, in particular for setups with many cameras and/or large images.
Therefore, we recommend to enable this mode only for inspection and
debugging a reconstruction with small data sets.
List of values:
0 , 1.
Default:
0.
Parameters for the surface reconstruction using 'surface_pairwise' or 'surface_fusion':
By setting GenParamNameGenParamNameGenParamNamegenParamNamegen_param_name
to one of the following values, additional
parameters specific for surface reconstruction can be set with
GenParamValueGenParamValueGenParamValuegenParamValuegen_param_value
for a stereo model of type 'surface_pairwise'"surface_pairwise""surface_pairwise""surface_pairwise""surface_pairwise"
or 'surface_fusion'"surface_fusion""surface_fusion""surface_fusion""surface_fusion":
- 'color'"color""color""color""color":
-
By setting this parameter to one of the following values, the coloring
of the reconstructed 3D object model is either enabled or disabled
('none'"none""none""none""none"). See reconstruct_surface_stereoreconstruct_surface_stereoReconstructSurfaceStereoReconstructSurfaceStereoreconstruct_surface_stereo
on how to
access the resulting color information.
- 'median'"median""median""median""median"
The color value of a 3D point is the median of the color values of
all cameras where the 3D point is visible.
- 'smallest_distance'"smallest_distance""smallest_distance""smallest_distance""smallest_distance"
The color value of a 3D point corresponds to the color value of the
camera that exhibits the smallest distance to this 3D point.
- 'mean_weighted_distances'"mean_weighted_distances""mean_weighted_distances""mean_weighted_distances""mean_weighted_distances"
All cameras that contribute to the reconstruction of a 3D point are
weighted according to their distance to the 3D point. Cameras with a
smaller distance receive a higher weight, whereas cameras with a
larger distance get a lower weight.
The color value of a 3D point is then computed by averaging the
weighted color values of the cameras.
- 'line_of_sight'"line_of_sight""line_of_sight""line_of_sight""line_of_sight"
The color value of a 3D point corresponds to the color value of the
camera that exhibits the smallest angle between the point normal and
the line of sight.
- 'mean_weighted_lines_of_sight'"mean_weighted_lines_of_sight""mean_weighted_lines_of_sight""mean_weighted_lines_of_sight""mean_weighted_lines_of_sight"
All cameras that contribute to the reconstruction of a 3D point are
weighted according to their angle between the point normal and the
line of sight. Cameras with a smaller angle receive a higher weight.
The color value of a 3D point is then computed by averaging the
weighted color values of the cameras.
List of values:
'none'"none""none""none""none",
'smallest_distance'"smallest_distance""smallest_distance""smallest_distance""smallest_distance",
'mean_weighted_distances'"mean_weighted_distances""mean_weighted_distances""mean_weighted_distances""mean_weighted_distances",
'line_of_sight'"line_of_sight""line_of_sight""line_of_sight""line_of_sight",
'mean_weighted_lines_of_sight'"mean_weighted_lines_of_sight""mean_weighted_lines_of_sight""mean_weighted_lines_of_sight""mean_weighted_lines_of_sight",
'median'"median""median""median""median".
Default:
'none'"none""none""none""none".
- 'color_invisible'"color_invisible""color_invisible""color_invisible""color_invisible":
-
If stereo models of type 'surface_fusion'"surface_fusion""surface_fusion""surface_fusion""surface_fusion" are used, the
reconstruction will contain points without a direct correspondence to
points in the images. These points are not seen by any of the cameras of
the stereo
system and are therefore "invisible". A color value for these points has
to be calculated using the color of points in the vicinity. Coloring these
"invisible" points can be switched off by setting
this parameter to 'false'"false""false""false""false". In this case invisible points are
assigned 255 as gray value.
Normally, coloring of "invisible" points is not very time-consuming and can
remain active. However, it may happen that the value for the parameter
'resolution'"resolution""resolution""resolution""resolution" is considerably finer than the available image
resolution.
In this case, many invisible 3D points are reconstructed making the nearest
neighbor search very time consuming. In order to avoid an increased
runtime, it is recommended to either adapt the value of
'resolution'"resolution""resolution""resolution""resolution" or to switch off the calculation for invisible
points.
Please note that for stereo models of type 'surface_pairwise'"surface_pairwise""surface_pairwise""surface_pairwise""surface_pairwise",
this parameter will not have any effect.
List of values:
'true'"true""true""true""true", 'false'"false""false""false""false".
Default:
'true'"true""true""true""true".
- 'rectif_interpolation'"rectif_interpolation""rectif_interpolation""rectif_interpolation""rectif_interpolation":
-
Interpolation mode for the rectification maps (see
set_stereo_model_image_pairsset_stereo_model_image_pairsSetStereoModelImagePairsSetStereoModelImagePairsset_stereo_model_image_pairs
). Note that after changing this
parameter, you must call set_stereo_model_image_pairsset_stereo_model_image_pairsSetStereoModelImagePairsSetStereoModelImagePairsset_stereo_model_image_pairs
again
for the changes to take effect.
List of values:
'none'"none""none""none""none", 'bilinear'"bilinear""bilinear""bilinear""bilinear".
Default:
'bilinear'"bilinear""bilinear""bilinear""bilinear".
- 'rectif_sub_sampling'"rectif_sub_sampling""rectif_sub_sampling""rectif_sub_sampling""rectif_sub_sampling":
-
Sub-sampling factor for the rectification maps (see
set_stereo_model_image_pairsset_stereo_model_image_pairsSetStereoModelImagePairsSetStereoModelImagePairsset_stereo_model_image_pairs
). Note that after changing this
parameter, you must call set_stereo_model_image_pairsset_stereo_model_image_pairsSetStereoModelImagePairsSetStereoModelImagePairsset_stereo_model_image_pairs
again
for the changes to take effect.
Suggested values:
0.5, 0.66, 1.0,
1.5, 2.0, 3.0,
4.0.
Default:
1.0.
- 'rectif_method'"rectif_method""rectif_method""rectif_method""rectif_method":
-
Rectification method for the rectification maps (see
set_stereo_model_image_pairsset_stereo_model_image_pairsSetStereoModelImagePairsSetStereoModelImagePairsset_stereo_model_image_pairs
). Note that after changing this
parameter, you must call set_stereo_model_image_pairsset_stereo_model_image_pairsSetStereoModelImagePairsSetStereoModelImagePairsset_stereo_model_image_pairs
again
for the changes to take effect.
List of values:
'viewing_direction'"viewing_direction""viewing_direction""viewing_direction""viewing_direction",
'geometric'"geometric""geometric""geometric""geometric".
Default:
'viewing_direction'"viewing_direction""viewing_direction""viewing_direction""viewing_direction".
- 'disparity_method'"disparity_method""disparity_method""disparity_method""disparity_method":
-
Method used to create disparity images from
the image pairs (see reconstruct_surface_stereoreconstruct_surface_stereoReconstructSurfaceStereoReconstructSurfaceStereoreconstruct_surface_stereo
). Currently,
the three methods 'binocular'"binocular""binocular""binocular""binocular", 'binocular_mg'"binocular_mg""binocular_mg""binocular_mg""binocular_mg" and
'binocular_ms'"binocular_ms""binocular_ms""binocular_ms""binocular_ms" are supported. Dependent on the chosen method,
the HALCON operator binocular_disparitybinocular_disparityBinocularDisparityBinocularDisparitybinocular_disparity
,
binocular_disparity_mgbinocular_disparity_mgBinocularDisparityMgBinocularDisparityMgbinocular_disparity_mg
or binocular_disparity_msbinocular_disparity_msBinocularDisparityMsBinocularDisparityMsbinocular_disparity_ms
is
called internally.
List of values:
'binocular'"binocular""binocular""binocular""binocular", 'binocular_mg'"binocular_mg""binocular_mg""binocular_mg""binocular_mg",
'binocular_ms'"binocular_ms""binocular_ms""binocular_ms""binocular_ms".
Default:
'binocular'"binocular""binocular""binocular""binocular".
- 'min_disparity'"min_disparity""min_disparity""min_disparity""min_disparity", 'max_disparity'"max_disparity""max_disparity""max_disparity""max_disparity":
-
Minimum and maximum disparity values that are used in the
operator reconstruct_surface_stereoreconstruct_surface_stereoReconstructSurfaceStereoReconstructSurfaceStereoreconstruct_surface_stereo
.
The number of minimum and maximum disparity values
must correspond to the number of image pairs.
If 'min_disparity'"min_disparity""min_disparity""min_disparity""min_disparity" and 'max_disparity'"max_disparity""max_disparity""max_disparity""max_disparity"
are not set by the operator set_stereo_model_paramset_stereo_model_paramSetStereoModelParamSetStereoModelParamset_stereo_model_param
,
the disparity values are estimated internally by using the underlying
bounding box.
Note that because 'min_disparity'"min_disparity""min_disparity""min_disparity""min_disparity" and 'max_disparity'"max_disparity""max_disparity""max_disparity""max_disparity"
are tuple-valued parameters, they cannot be set in a single call of
set_stereo_model_paramset_stereo_model_paramSetStereoModelParamSetStereoModelParamset_stereo_model_param
together with other model parameters
(see the paragraph "A note on tuple-valued model parameters" below).
- 'binocular_score_thresh'"binocular_score_thresh""binocular_score_thresh""binocular_score_thresh""binocular_score_thresh":
-
For the methods 'binocular_mg'"binocular_mg""binocular_mg""binocular_mg""binocular_mg" and 'binocular_ms'"binocular_ms""binocular_ms""binocular_ms""binocular_ms" the
disparities that have a score above the passed threshold
are excluded from further processing steps and do not end up in the
reconstructed 3D point cloud.
For the method 'binocular'"binocular""binocular""binocular""binocular" the disparities below the passed
threshold are excluded.
- For stereo models with the method 'binocular'"binocular""binocular""binocular""binocular":
-
List of values:
positive and negative integer or float value.
Default:
0.5.
- For stereo models with the method 'binocular_mg'"binocular_mg""binocular_mg""binocular_mg""binocular_mg" or
'binocular_ms'"binocular_ms""binocular_ms""binocular_ms""binocular_ms":
-
List of values:
integer or float value greater or equal
to 0.0.
Default:
-1.
Depending on the selected disparity method, a set of different
parameters is available for the user. These parameters allow a fine
tuning to the used data set. More information about the parameters can
be found in the respective operator reference of
binocular_disparitybinocular_disparityBinocularDisparityBinocularDisparitybinocular_disparity
, binocular_disparity_mgbinocular_disparity_mgBinocularDisparityMgBinocularDisparityMgbinocular_disparity_mg
or
binocular_disparity_msbinocular_disparity_msBinocularDisparityMsBinocularDisparityMsbinocular_disparity_ms
.
- Set of parameters for stereo models with method =
'binocular'"binocular""binocular""binocular""binocular"
-
- 'binocular_method'"binocular_method""binocular_method""binocular_method""binocular_method":
-
Sets the desired matching method.
List of values:
'ncc'"ncc""ncc""ncc""ncc", 'sad'"sad""sad""sad""sad",
'ssd'"ssd""ssd""ssd""ssd".
Default:
'ncc'"ncc""ncc""ncc""ncc".
- 'binocular_num_levels'"binocular_num_levels""binocular_num_levels""binocular_num_levels""binocular_num_levels":
-
Number of used image pyramids.
List of values:
integer value greater or equal to 1.
Default:
1.
- 'binocular_mask_width'"binocular_mask_width""binocular_mask_width""binocular_mask_width""binocular_mask_width":
-
Width of the correlation window.
List of values:
Odd integer value greater or equal to 3.
Default:
11.
- 'binocular_mask_height'"binocular_mask_height""binocular_mask_height""binocular_mask_height""binocular_mask_height":
-
Height of the correlation window.
List of values:
Odd integer value greater or equal to 3.
Default:
11.
- 'binocular_texture_thresh'"binocular_texture_thresh""binocular_texture_thresh""binocular_texture_thresh""binocular_texture_thresh":
-
Variance threshold of textured image regions.
List of values:
integer or float value greater or equal to
0.0.
Default:
0.0.
- 'binocular_filter'"binocular_filter""binocular_filter""binocular_filter""binocular_filter":
-
Downstream filters.
List of values:
'none'"none""none""none""none",
'left_right_check'"left_right_check""left_right_check""left_right_check""left_right_check".
Default:
'none'"none""none""none""none".
- 'binocular_sub_disparity'"binocular_sub_disparity""binocular_sub_disparity""binocular_sub_disparity""binocular_sub_disparity":
-
Subpixel interpolation of disparities.
List of values:
'none'"none""none""none""none", 'interpolation'"interpolation""interpolation""interpolation""interpolation".
Default:
'none'"none""none""none""none".
- Set of parameters for stereo models with method =
'binocular_mg'"binocular_mg""binocular_mg""binocular_mg""binocular_mg"
-
- 'binocular_mg_gray_constancy'"binocular_mg_gray_constancy""binocular_mg_gray_constancy""binocular_mg_gray_constancy""binocular_mg_gray_constancy":
-
Weight of the gray value constancy in the data term.
List of values:
integer or float value greater or equal to
0.0.
Default:
1.0.
- 'binocular_mg_gradient_constancy'"binocular_mg_gradient_constancy""binocular_mg_gradient_constancy""binocular_mg_gradient_constancy""binocular_mg_gradient_constancy":
-
Weight of the gradient constancy in the data term.
List of values:
integer or float value greater or equal to
0.0.
Default:
30.0.
- 'binocular_mg_smoothness'"binocular_mg_smoothness""binocular_mg_smoothness""binocular_mg_smoothness""binocular_mg_smoothness":
-
Weight of the smoothness term in relation to the data term.
List of values:
integer or float value greater 0.0.
Default:
5.0.
- 'binocular_mg_initial_guess'"binocular_mg_initial_guess""binocular_mg_initial_guess""binocular_mg_initial_guess""binocular_mg_initial_guess":
-
Initial guess of the disparity.
List of values:
integer or float value.
Default:
0.0.
The subsequent parameters control the behavior of the used multigrid
method.
- 'binocular_mg_default_parameters'"binocular_mg_default_parameters""binocular_mg_default_parameters""binocular_mg_default_parameters""binocular_mg_default_parameters":
-
Sets predefined values for the following parameters of the used
multigrid method:
'binocular_mg_solver'"binocular_mg_solver""binocular_mg_solver""binocular_mg_solver""binocular_mg_solver", 'binocular_mg_cycle_type'"binocular_mg_cycle_type""binocular_mg_cycle_type""binocular_mg_cycle_type""binocular_mg_cycle_type",
'binocular_mg_pre_relax'"binocular_mg_pre_relax""binocular_mg_pre_relax""binocular_mg_pre_relax""binocular_mg_pre_relax",
'binocular_mg_post_relax'"binocular_mg_post_relax""binocular_mg_post_relax""binocular_mg_post_relax""binocular_mg_post_relax",
'binocular_mg_initial_level'"binocular_mg_initial_level""binocular_mg_initial_level""binocular_mg_initial_level""binocular_mg_initial_level",
'binocular_mg_iterations'"binocular_mg_iterations""binocular_mg_iterations""binocular_mg_iterations""binocular_mg_iterations",
'binocular_mg_pyramid_factor'"binocular_mg_pyramid_factor""binocular_mg_pyramid_factor""binocular_mg_pyramid_factor""binocular_mg_pyramid_factor". The exact values of these
parameters can be found in the operator reference of
binocular_disparity_mgbinocular_disparity_mgBinocularDisparityMgBinocularDisparityMgbinocular_disparity_mg
.
List of values:
'very_accurate'"very_accurate""very_accurate""very_accurate""very_accurate", 'accurate'"accurate""accurate""accurate""accurate",
'fast_accurate'"fast_accurate""fast_accurate""fast_accurate""fast_accurate", 'fast'"fast""fast""fast""fast".
Default:
'fast_accurate'"fast_accurate""fast_accurate""fast_accurate""fast_accurate".
- 'binocular_mg_solver'"binocular_mg_solver""binocular_mg_solver""binocular_mg_solver""binocular_mg_solver":
-
Solver for the linear system.
List of values:
'multigrid'"multigrid""multigrid""multigrid""multigrid",
'full_multigrid'"full_multigrid""full_multigrid""full_multigrid""full_multigrid",
'gauss_seidel'"gauss_seidel""gauss_seidel""gauss_seidel""gauss_seidel".
Default:
'full_multigrid'"full_multigrid""full_multigrid""full_multigrid""full_multigrid".
- 'binocular_mg_cycle_type'"binocular_mg_cycle_type""binocular_mg_cycle_type""binocular_mg_cycle_type""binocular_mg_cycle_type":
-
Selects the type of recursion for the multigrid solvers.
List of values:
'v'"v""v""v""v",'w'"w""w""w""w",
'none'"none""none""none""none".
Default:
'v'"v""v""v""v".
- 'binocular_mg_pre_relax'"binocular_mg_pre_relax""binocular_mg_pre_relax""binocular_mg_pre_relax""binocular_mg_pre_relax":
-
Sets the number of iterations of the pre-relaxation step in
multigrid solvers, or the number of iterations for the Gauss-Seidel
solver, depending on which is selected.
List of values:
integer or float value greater 0.0.
Default:
1.
- 'binocular_mg_post_relax'"binocular_mg_post_relax""binocular_mg_post_relax""binocular_mg_post_relax""binocular_mg_post_relax":
-
Sets the number of iterations of the post-relaxation step.
List of values:
integer or float value.
Default:
1.
- 'binocular_mg_initial_level'"binocular_mg_initial_level""binocular_mg_initial_level""binocular_mg_initial_level""binocular_mg_initial_level":
-
Sets the coarsest level of the image pyramid where the coarse-to-fine
process starts.
List of values:
integer value.
Default:
-2.
- 'binocular_mg_iterations'"binocular_mg_iterations""binocular_mg_iterations""binocular_mg_iterations""binocular_mg_iterations":
-
Sets the number of iterations of the fixed point iteration per
pyramid level.
List of values:
integer or float value greater or equal to 0.
Default:
1
- 'binocular_mg_pyramid_factor'"binocular_mg_pyramid_factor""binocular_mg_pyramid_factor""binocular_mg_pyramid_factor""binocular_mg_pyramid_factor":
-
Determines the factor by which the images are scaled when creating
the image pyramid for the coarse-to-fine process.
List of values:
integer or float value between 0.1 and 0.9.
Default:
0.6.
- Set of parameters for stereo models with method =
'binocular_ms'"binocular_ms""binocular_ms""binocular_ms""binocular_ms"
-
- 'binocular_ms_surface_smoothing'"binocular_ms_surface_smoothing""binocular_ms_surface_smoothing""binocular_ms_surface_smoothing""binocular_ms_surface_smoothing":
-
Smoothing of surfaces.
List of values:
integer value greater or equal to 0.
Default:
50.
- 'binocular_ms_edge_smoothing'"binocular_ms_edge_smoothing""binocular_ms_edge_smoothing""binocular_ms_edge_smoothing""binocular_ms_edge_smoothing":
-
Smoothing of edges.
List of values:
integer value greater or equal to 0.
Default:
50.
- 'binocular_ms_consistency_check'"binocular_ms_consistency_check""binocular_ms_consistency_check""binocular_ms_consistency_check""binocular_ms_consistency_check":
-
This parameter increases the robustness of the returned matches
since the result relies on a concurrent direct and reverse match.
List of values:
'true'"true""true""true""true", 'false'"false""false""false""false".
Default:
'true'"true""true""true""true".
- 'binocular_ms_similarity_measure'"binocular_ms_similarity_measure""binocular_ms_similarity_measure""binocular_ms_similarity_measure""binocular_ms_similarity_measure":
-
Sets the method of the similarity measure.
List of values:
'census_dense'"census_dense""census_dense""census_dense""census_dense",
'census_sparse'"census_sparse""census_sparse""census_sparse""census_sparse".
Default:
'census_dense'"census_dense""census_dense""census_dense""census_dense".
- 'binocular_ms_sub_disparity'"binocular_ms_sub_disparity""binocular_ms_sub_disparity""binocular_ms_sub_disparity""binocular_ms_sub_disparity":
-
Enables or disables the sub-pixel refinement of disparities.
List of values:
'true'"true""true""true""true", 'false'"false""false""false""false".
Default:
'true'"true""true""true""true".
- 'point_meshing'"point_meshing""point_meshing""point_meshing""point_meshing":
-
Enables the post-processing step for meshing the reconstructed
surface points. For a stereo model of type 'surface_pairwise'"surface_pairwise""surface_pairwise""surface_pairwise""surface_pairwise",
a Poisson solver is supported. For a stereo model of type
'surface_fusion'"surface_fusion""surface_fusion""surface_fusion""surface_fusion", a meshing of the isosurface is supported
(see reconstruct_surface_stereoreconstruct_surface_stereoReconstructSurfaceStereoReconstructSurfaceStereoreconstruct_surface_stereo
for more details).
List of values:
'none'"none""none""none""none",
'poisson'"poisson""poisson""poisson""poisson", 'isosurface'"isosurface""isosurface""isosurface""isosurface".
Default:
'none'"none""none""none""none".
If the Poisson-based meshing is enabled, the following parameters can be
set:
-
'poisson_depth'"poisson_depth""poisson_depth""poisson_depth""poisson_depth":
Depth of the solver octree. More detail (i.e., a higher resolution)
of the resulting mesh is achieved with deeper trees. However, this
requires more time and memory.
Suggested values:
6, 8, 10.
Default:
8.
Restriction:
3 <= 'poisson_depth'"poisson_depth""poisson_depth""poisson_depth""poisson_depth" <=
12
-
'poisson_solver_divide'"poisson_solver_divide""poisson_solver_divide""poisson_solver_divide""poisson_solver_divide":
Depth of block Gauss-Seidel solver used for solving the Poisson
equation. At the price of a small time overhead, this parameter
reduces the memory consumption of the underlying meshing
algorithm. Proposed values are depths by 0 to 2 smaller compared to
the main octree depth.
Suggested values:
6, 8,
10.
Default:
8.
Restriction:
3 <= 'poisson_solver_divide'"poisson_solver_divide""poisson_solver_divide""poisson_solver_divide""poisson_solver_divide"
<= 'poisson_depth'"poisson_depth""poisson_depth""poisson_depth""poisson_depth"
-
'poisson_samples_per_node'"poisson_samples_per_node""poisson_samples_per_node""poisson_samples_per_node""poisson_samples_per_node":
Minimum number of points that should fall in a single octree
leaf. This parameter is used to handle noisy data, e.g., noise-free
data can be distributed over many leaves, whereas more noisy data
should be stored in a single leaf to compensate for the noise. As a
side effect, bigger values of this parameter distribute the data in
fewer leaves, which results in a smaller octree, which means a speedup
but possibly less detail of the reconstruction.
Suggested values:
1, 5, 10,
30, 40.
Default:
30.
Parameters only for 'surface_pairwise':
By setting GenParamNameGenParamNameGenParamNamegenParamNamegen_param_name
to one of the following values, additional
parameters specific for surface reconstruction can be set with
GenParamValueGenParamValueGenParamValuegenParamValuegen_param_value
for a stereo model of type 'surface_pairwise'"surface_pairwise""surface_pairwise""surface_pairwise""surface_pairwise":
- 'sub_sampling_step'"sub_sampling_step""sub_sampling_step""sub_sampling_step""sub_sampling_step":
-
sub-sampling step for the X, Y and Z image data resulting from
the pairwise disparity estimation, before this data is used
in its turn for the surface reconstruction (see
reconstruct_surface_stereoreconstruct_surface_stereoReconstructSurfaceStereoReconstructSurfaceStereoreconstruct_surface_stereo
).
Suggested values:
1, 2,
3.
Default:
2.
Parameters only for 'surface_fusion':
By setting GenParamNameGenParamNameGenParamNamegenParamNamegen_param_name
to one of the following values, additional
parameters specific for surface reconstruction can be set with
GenParamValueGenParamValueGenParamValuegenParamValuegen_param_value
for a stereo model of type 'surface_fusion'"surface_fusion""surface_fusion""surface_fusion""surface_fusion":
- 'resolution'"resolution""resolution""resolution""resolution":
-
Distance of neighboring sample points in each coordinate direction in
discretization of bounding box. 'resolution'"resolution""resolution""resolution""resolution" is set in [m].
See reconstruct_surface_stereoreconstruct_surface_stereoReconstructSurfaceStereoReconstructSurfaceStereoreconstruct_surface_stereo
for more details.
Too small values will unnecessarily increase the runtime.
Too large values will lead to a reconstruction with too few details.
Per default, it is set to a coarse resolution depending on the bounding
box. The parameter will be reset if the bounding box is reset.
'smoothing'"smoothing""smoothing""smoothing""smoothing" may need to be adapted when 'resolution'"resolution""resolution""resolution""resolution"
is changed.
'surface_tolerance'"surface_tolerance""surface_tolerance""surface_tolerance""surface_tolerance" should always be a bit larger than
'resolution'"resolution""resolution""resolution""resolution" in order to avoid effects of discretization.
Suggested values:
0.001, 0.01
- 'surface_tolerance'"surface_tolerance""surface_tolerance""surface_tolerance""surface_tolerance":
-
Specifies how much noise around the input point cloud should be combined
to a surface. Points in a cone of sight of a camera are considered surely
outside of the object (in front of the surface) or surely inside the
object (behind the surface) with respect to the given camera if their
distance to the initial surface exceeds 'surface_tolerance'"surface_tolerance""surface_tolerance""surface_tolerance""surface_tolerance".
'surface_tolerance'"surface_tolerance""surface_tolerance""surface_tolerance""surface_tolerance" is set in [m].
See reconstruct_surface_stereoreconstruct_surface_stereoReconstructSurfaceStereoReconstructSurfaceStereoreconstruct_surface_stereo
for more details and a figure.
Too small values lead to an uneven surface. Too large values smudge
distinct surfaces into one. Per default, it is set to three times
'resolution'"resolution""resolution""resolution""resolution". The parameter will be reset if the bounding box
is reset.
'surface_tolerance'"surface_tolerance""surface_tolerance""surface_tolerance""surface_tolerance" should always be a bit larger than
'resolution'"resolution""resolution""resolution""resolution" in order to avoid effects of discretization.
'min_thickness'"min_thickness""min_thickness""min_thickness""min_thickness" always has to be larger than or equal
to 'surface_tolerance'"surface_tolerance""surface_tolerance""surface_tolerance""surface_tolerance". If 'min_thickness'"min_thickness""min_thickness""min_thickness""min_thickness"
is set too small, 'surface_tolerance'"surface_tolerance""surface_tolerance""surface_tolerance""surface_tolerance" is automatically set to
the same value as 'min_thickness'"min_thickness""min_thickness""min_thickness""min_thickness".
If 'surface_tolerance'"surface_tolerance""surface_tolerance""surface_tolerance""surface_tolerance" is set too big, an error is
raised.
Suggested values:
0.003, 0.03
Restriction:
'surface_tolerance'"surface_tolerance""surface_tolerance""surface_tolerance""surface_tolerance" <
'min_thickness'"min_thickness""min_thickness""min_thickness""min_thickness"
- 'min_thickness'"min_thickness""min_thickness""min_thickness""min_thickness":
-
Length of considered cone of sight of a camera behind the initial
surface obtained by pairwise reconstruction. Points behind the surface
(viewed from the given camera) are only considered to lie inside the
object if their distance to the initial surface does not exceed
'min_thickness'"min_thickness""min_thickness""min_thickness""min_thickness". 'min_thickness'"min_thickness""min_thickness""min_thickness""min_thickness" is set in [m].
See reconstruct_surface_stereoreconstruct_surface_stereoReconstructSurfaceStereoReconstructSurfaceStereoreconstruct_surface_stereo
for more details and a figure.
If lines of sight are expected to intersect the closed object only once
(cameras all observe the object head-on from one side), this parameter
should remain at the very large default setting.
If lines of sight are expected
to intersect the object more often (cameras observe the object
from different sides), only the interior of the object of interest should
be marked as lying behind the surface. Thus, a first guess for the
parameter could be less than the thickness of your object.
The method 'surface_fusion'"surface_fusion""surface_fusion""surface_fusion""surface_fusion" will try to produce a closed surface.
If you observe several distinct objects from only one side, you may want
to reduce the parameter 'min_thickness'"min_thickness""min_thickness""min_thickness""min_thickness" to restrict the
depth of reconstructed objects and thus keep them from being smudged into
one surface. The backside of the objects is not observed and thus its
reconstruction will probably be incorrect.
Too small values can result in holes in the reconstructed point cloud or
double walls. Too large values can result in a distorted point cloud or
blow up the surface towards the outside of the object (if the surface is
blown up beyond the bounding box, no points will be reconstructed). Per
default set to the diameter of the bounding box. The parameter will be
reset if the bounding box is reset.
'min_thickness'"min_thickness""min_thickness""min_thickness""min_thickness" always has to be larger than or equal
to 'surface_tolerance'"surface_tolerance""surface_tolerance""surface_tolerance""surface_tolerance". If 'min_thickness'"min_thickness""min_thickness""min_thickness""min_thickness"
is set too small, 'surface_tolerance'"surface_tolerance""surface_tolerance""surface_tolerance""surface_tolerance" is automatically set to
the same value as 'min_thickness'"min_thickness""min_thickness""min_thickness""min_thickness".
If 'surface_tolerance'"surface_tolerance""surface_tolerance""surface_tolerance""surface_tolerance" is set too big, an error is
raised.
Suggested values:
0.005, 0.05.
- 'smoothing'"smoothing""smoothing""smoothing""smoothing":
-
The parameter 'smoothing'"smoothing""smoothing""smoothing""smoothing" determines how important a small total
variation of the distance function is compared to data fidelity. Thus,
'smoothing'"smoothing""smoothing""smoothing""smoothing" regulates the 'jumpiness' of the resulting surface
(see reconstruct_surface_stereoreconstruct_surface_stereoReconstructSurfaceStereoReconstructSurfaceStereoreconstruct_surface_stereo
for more details).
Note that the actual value of 'smoothing'"smoothing""smoothing""smoothing""smoothing" for a given data set
to be visually pleasing has to be found by try and error.
Too small values lead to integrating many outliers into the surface even
if the surface then exhibits many jumps. Too large values lead to lost
fidelity towards the point clouds of pairwise reconstruction (how the
algorithm views distances to the input point clouds depends heavily on
'surface_tolerance'"surface_tolerance""surface_tolerance""surface_tolerance""surface_tolerance" and 'min_thickness'"min_thickness""min_thickness""min_thickness""min_thickness").
The parameter will be reset if the bounding box is reset.
'smoothing'"smoothing""smoothing""smoothing""smoothing" may need to be adapted when 'resolution'"resolution""resolution""resolution""resolution"
is changed.
Suggested values:
15.0, 1.0,
0.1.
Default:
1.0.
All parameters except 'binocular_mg_default_parameters'"binocular_mg_default_parameters""binocular_mg_default_parameters""binocular_mg_default_parameters""binocular_mg_default_parameters" can be read
back by get_stereo_model_paramget_stereo_model_paramGetStereoModelParamGetStereoModelParamget_stereo_model_param
.
A note on tuple-valued model parameters
Most of the stereo model parameters are single-valued. Thus,
you can provide a list (i.e., tuple) of parameter names and a
list (tuple) of values that has the same length as the input tuple.
In contrast, when setting a tuple-valued parameter, you must pass a
tuple of values. When setting such a parameter together with
other parameters, the value-to-parameter-name correspondence is not
obvious anymore. Thus, tuple-valued parameters like
'bounding_box'"bounding_box""bounding_box""bounding_box""bounding_box", 'min_disparity'"min_disparity""min_disparity""min_disparity""min_disparity" or 'max_disparity'"max_disparity""max_disparity""max_disparity""max_disparity" should always be set in a separate call to
set_stereo_model_paramset_stereo_model_paramSetStereoModelParamSetStereoModelParamset_stereo_model_param
.
Execution Information
- Multithreading type: reentrant (runs in parallel with non-exclusive operators).
- Multithreading scope: global (may be called from any thread).
- Processed without parallelization.
This operator modifies the state of the following input parameter:
During execution of this operator, access to the value of this parameter must be synchronized if it is used across multiple threads.
Parameters
StereoModelIDStereoModelIDStereoModelIDstereoModelIDstereo_model_id
(input_control, state is modified) stereo_model →
HStereoModel, HTupleHHandleHTupleHtuple (handle) (IntPtr) (HHandle) (handle)
Handle of the stereo model.
GenParamNameGenParamNameGenParamNamegenParamNamegen_param_name
(input_control) attribute.name(-array) →
HTupleMaybeSequence[str]HTupleHtuple (string) (string) (HString) (char*)
Names of the parameters to be set.
List of values:
'binocular_filter'"binocular_filter""binocular_filter""binocular_filter""binocular_filter", 'binocular_mask_height'"binocular_mask_height""binocular_mask_height""binocular_mask_height""binocular_mask_height", 'binocular_mask_width'"binocular_mask_width""binocular_mask_width""binocular_mask_width""binocular_mask_width", 'binocular_method'"binocular_method""binocular_method""binocular_method""binocular_method", 'binocular_mg_cycle_type'"binocular_mg_cycle_type""binocular_mg_cycle_type""binocular_mg_cycle_type""binocular_mg_cycle_type", 'binocular_mg_default_parameters'"binocular_mg_default_parameters""binocular_mg_default_parameters""binocular_mg_default_parameters""binocular_mg_default_parameters", 'binocular_mg_gradient_constancy'"binocular_mg_gradient_constancy""binocular_mg_gradient_constancy""binocular_mg_gradient_constancy""binocular_mg_gradient_constancy", 'binocular_mg_gray_constancy'"binocular_mg_gray_constancy""binocular_mg_gray_constancy""binocular_mg_gray_constancy""binocular_mg_gray_constancy", 'binocular_mg_initial_guess'"binocular_mg_initial_guess""binocular_mg_initial_guess""binocular_mg_initial_guess""binocular_mg_initial_guess", 'binocular_mg_initial_level'"binocular_mg_initial_level""binocular_mg_initial_level""binocular_mg_initial_level""binocular_mg_initial_level", 'binocular_mg_iterations'"binocular_mg_iterations""binocular_mg_iterations""binocular_mg_iterations""binocular_mg_iterations", 'binocular_mg_post_relax'"binocular_mg_post_relax""binocular_mg_post_relax""binocular_mg_post_relax""binocular_mg_post_relax", 'binocular_mg_pre_relax'"binocular_mg_pre_relax""binocular_mg_pre_relax""binocular_mg_pre_relax""binocular_mg_pre_relax", 'binocular_mg_pyramid_factor'"binocular_mg_pyramid_factor""binocular_mg_pyramid_factor""binocular_mg_pyramid_factor""binocular_mg_pyramid_factor", 'binocular_mg_smoothness'"binocular_mg_smoothness""binocular_mg_smoothness""binocular_mg_smoothness""binocular_mg_smoothness", 'binocular_mg_solver'"binocular_mg_solver""binocular_mg_solver""binocular_mg_solver""binocular_mg_solver", 'binocular_ms_consistency_check'"binocular_ms_consistency_check""binocular_ms_consistency_check""binocular_ms_consistency_check""binocular_ms_consistency_check", 'binocular_ms_edge_smoothing'"binocular_ms_edge_smoothing""binocular_ms_edge_smoothing""binocular_ms_edge_smoothing""binocular_ms_edge_smoothing", 'binocular_ms_similarity_measure'"binocular_ms_similarity_measure""binocular_ms_similarity_measure""binocular_ms_similarity_measure""binocular_ms_similarity_measure", 'binocular_ms_sub_disparity'"binocular_ms_sub_disparity""binocular_ms_sub_disparity""binocular_ms_sub_disparity""binocular_ms_sub_disparity", 'binocular_ms_surface_smoothing'"binocular_ms_surface_smoothing""binocular_ms_surface_smoothing""binocular_ms_surface_smoothing""binocular_ms_surface_smoothing", 'binocular_num_levels'"binocular_num_levels""binocular_num_levels""binocular_num_levels""binocular_num_levels", 'binocular_score_thresh'"binocular_score_thresh""binocular_score_thresh""binocular_score_thresh""binocular_score_thresh", 'binocular_sub_disparity'"binocular_sub_disparity""binocular_sub_disparity""binocular_sub_disparity""binocular_sub_disparity", 'binocular_texture_thresh'"binocular_texture_thresh""binocular_texture_thresh""binocular_texture_thresh""binocular_texture_thresh", 'bounding_box'"bounding_box""bounding_box""bounding_box""bounding_box", 'color'"color""color""color""color", 'color_invisible'"color_invisible""color_invisible""color_invisible""color_invisible", 'disparity_method'"disparity_method""disparity_method""disparity_method""disparity_method", 'max_disparity'"max_disparity""max_disparity""max_disparity""max_disparity", 'min_disparity'"min_disparity""min_disparity""min_disparity""min_disparity", 'min_thickness'"min_thickness""min_thickness""min_thickness""min_thickness", 'persistence'"persistence""persistence""persistence""persistence", 'point_meshing'"point_meshing""point_meshing""point_meshing""point_meshing", 'poisson_depth'"poisson_depth""poisson_depth""poisson_depth""poisson_depth", 'poisson_samples_per_node'"poisson_samples_per_node""poisson_samples_per_node""poisson_samples_per_node""poisson_samples_per_node", 'poisson_solver_divide'"poisson_solver_divide""poisson_solver_divide""poisson_solver_divide""poisson_solver_divide", 'rectif_interpolation'"rectif_interpolation""rectif_interpolation""rectif_interpolation""rectif_interpolation", 'rectif_method'"rectif_method""rectif_method""rectif_method""rectif_method", 'rectif_sub_sampling'"rectif_sub_sampling""rectif_sub_sampling""rectif_sub_sampling""rectif_sub_sampling", 'resolution'"resolution""resolution""resolution""resolution", 'smoothing'"smoothing""smoothing""smoothing""smoothing", 'sub_sampling_step'"sub_sampling_step""sub_sampling_step""sub_sampling_step""sub_sampling_step", 'surface_tolerance'"surface_tolerance""surface_tolerance""surface_tolerance""surface_tolerance"
GenParamValueGenParamValueGenParamValuegenParamValuegen_param_value
(input_control) attribute.value-array →
HTupleSequence[Union[float, int, str]]HTupleHtuple (real / integer / string) (double / int / long / string) (double / Hlong / HString) (double / Hlong / char*)
Values of the parameters to be set.
Suggested values:
1, -2, -5, 0, 0.3, 0.5, 0.9, 1, 2, 3, 'census_dense'"census_dense""census_dense""census_dense""census_dense", 'census_sparse'"census_sparse""census_sparse""census_sparse""census_sparse", 'binocular'"binocular""binocular""binocular""binocular", 'ncc'"ncc""ncc""ncc""ncc", 'none'"none""none""none""none", 'sad'"sad""sad""sad""sad", 'ssd'"ssd""ssd""ssd""ssd", 'bilinear'"bilinear""bilinear""bilinear""bilinear", 'false'"false""false""false""false", 'viewing_direction'"viewing_direction""viewing_direction""viewing_direction""viewing_direction", 'geometric'"geometric""geometric""geometric""geometric", 'very_accurate'"very_accurate""very_accurate""very_accurate""very_accurate", 'accurate'"accurate""accurate""accurate""accurate", 'fast_accurate'"fast_accurate""fast_accurate""fast_accurate""fast_accurate", 'fast'"fast""fast""fast""fast", 'v'"v""v""v""v", 'w'"w""w""w""w", 'none'"none""none""none""none", 'gauss_seidel'"gauss_seidel""gauss_seidel""gauss_seidel""gauss_seidel", 'multigrid'"multigrid""multigrid""multigrid""multigrid", 'true'"true""true""true""true", 'poisson'"poisson""poisson""poisson""poisson", 'isosurface'"isosurface""isosurface""isosurface""isosurface", 'interpolation'"interpolation""interpolation""interpolation""interpolation", 'left_right_check'"left_right_check""left_right_check""left_right_check""left_right_check", 'full_multigrid'"full_multigrid""full_multigrid""full_multigrid""full_multigrid", 'binocular_mg'"binocular_mg""binocular_mg""binocular_mg""binocular_mg", 'binocular_ms'"binocular_ms""binocular_ms""binocular_ms""binocular_ms", 'smallest_distance'"smallest_distance""smallest_distance""smallest_distance""smallest_distance", 'mean_weighted_distances'"mean_weighted_distances""mean_weighted_distances""mean_weighted_distances""mean_weighted_distances", 'line_of_sight'"line_of_sight""line_of_sight""line_of_sight""line_of_sight", 'mean_weighted_lines_of_sight'"mean_weighted_lines_of_sight""mean_weighted_lines_of_sight""mean_weighted_lines_of_sight""mean_weighted_lines_of_sight", 'median'"median""median""median""median"
Possible Predecessors
create_stereo_modelcreate_stereo_modelCreateStereoModelCreateStereoModelcreate_stereo_model
Possible Successors
reconstruct_surface_stereoreconstruct_surface_stereoReconstructSurfaceStereoReconstructSurfaceStereoreconstruct_surface_stereo
,
reconstruct_points_stereoreconstruct_points_stereoReconstructPointsStereoReconstructPointsStereoreconstruct_points_stereo
See also
get_stereo_model_paramget_stereo_model_paramGetStereoModelParamGetStereoModelParamget_stereo_model_param
,
set_stereo_model_image_pairsset_stereo_model_image_pairsSetStereoModelImagePairsSetStereoModelImagePairsset_stereo_model_image_pairs
Module
3D Metrology