Name
binocular_disparity_msbinocular_disparity_msBinocularDisparityMsbinocular_disparity_msBinocularDisparityMsBinocularDisparityMs — Compute the disparities of a rectified stereo image pair using
multi-scanline optimization.
Herror binocular_disparity_ms(const Hobject ImageRect1, const Hobject ImageRect2, Hobject* Disparity, Hobject* Score, const Hlong MinDisparity, const Hlong MaxDisparity, const Hlong SurfaceSmoothing, const Hlong EdgeSmoothing, const char* GenParamName, const char* GenParamValue)
Herror T_binocular_disparity_ms(const Hobject ImageRect1, const Hobject ImageRect2, Hobject* Disparity, Hobject* Score, const Htuple MinDisparity, const Htuple MaxDisparity, const Htuple SurfaceSmoothing, const Htuple EdgeSmoothing, const Htuple GenParamName, const Htuple GenParamValue)
Herror binocular_disparity_ms(Hobject ImageRect1, Hobject ImageRect2, Hobject* Disparity, Hobject* Score, const HTuple& MinDisparity, const HTuple& MaxDisparity, const HTuple& SurfaceSmoothing, const HTuple& EdgeSmoothing, const HTuple& GenParamName, const HTuple& GenParamValue)
HImage HImage::BinocularDisparityMs(const HImage& ImageRect2, HImage* Score, const HTuple& MinDisparity, const HTuple& MaxDisparity, const HTuple& SurfaceSmoothing, const HTuple& EdgeSmoothing, const HTuple& GenParamName, const HTuple& GenParamValue) const
void BinocularDisparityMs(const HObject& ImageRect1, const HObject& ImageRect2, HObject* Disparity, HObject* Score, const HTuple& MinDisparity, const HTuple& MaxDisparity, const HTuple& SurfaceSmoothing, const HTuple& EdgeSmoothing, const HTuple& GenParamName, const HTuple& GenParamValue)
HImage HImage::BinocularDisparityMs(const HImage& ImageRect2, HImage* Score, Hlong MinDisparity, Hlong MaxDisparity, Hlong SurfaceSmoothing, Hlong EdgeSmoothing, const HTuple& GenParamName, const HTuple& GenParamValue) const
HImage HImage::BinocularDisparityMs(const HImage& ImageRect2, HImage* Score, Hlong MinDisparity, Hlong MaxDisparity, Hlong SurfaceSmoothing, Hlong EdgeSmoothing, const HString& GenParamName, const HString& GenParamValue) const
HImage HImage::BinocularDisparityMs(const HImage& ImageRect2, HImage* Score, Hlong MinDisparity, Hlong MaxDisparity, Hlong SurfaceSmoothing, Hlong EdgeSmoothing, const char* GenParamName, const char* GenParamValue) const
void HOperatorSetX.BinocularDisparityMs(
[in] IHUntypedObjectX* ImageRect1, [in] IHUntypedObjectX* ImageRect2, [out] IHUntypedObjectX** Disparity, [out] IHUntypedObjectX** Score, [in] VARIANT MinDisparity, [in] VARIANT MaxDisparity, [in] VARIANT SurfaceSmoothing, [in] VARIANT EdgeSmoothing, [in] VARIANT GenParamName, [in] VARIANT GenParamValue)
IHImageX* HImageX.BinocularDisparityMs(
[in] IHImageX* ImageRect2, [out] IHImageX** Score, [in] Hlong MinDisparity, [in] Hlong MaxDisparity, [in] Hlong SurfaceSmoothing, [in] Hlong EdgeSmoothing, [in] VARIANT GenParamName, [in] VARIANT GenParamValue)
static void HOperatorSet.BinocularDisparityMs(HObject imageRect1, HObject imageRect2, out HObject disparity, out HObject score, HTuple minDisparity, HTuple maxDisparity, HTuple surfaceSmoothing, HTuple edgeSmoothing, HTuple genParamName, HTuple genParamValue)
HImage HImage.BinocularDisparityMs(HImage imageRect2, out HImage score, int minDisparity, int maxDisparity, int surfaceSmoothing, int edgeSmoothing, HTuple genParamName, HTuple genParamValue)
HImage HImage.BinocularDisparityMs(HImage imageRect2, out HImage score, int minDisparity, int maxDisparity, int surfaceSmoothing, int edgeSmoothing, string genParamName, string genParamValue)
binocular_disparity_msbinocular_disparity_msBinocularDisparityMsbinocular_disparity_msBinocularDisparityMsBinocularDisparityMs calculates the disparity between two
rectified stereo images ImageRect1ImageRect1ImageRect1ImageRect1ImageRect1imageRect1 and ImageRect2ImageRect2ImageRect2ImageRect2ImageRect2imageRect2
using multi-scanline optimization. The resulting disparity image is
returned in DisparityDisparityDisparityDisparityDisparitydisparity.
In contrast to binocular_distance_msbinocular_distance_msBinocularDistanceMsbinocular_distance_msBinocularDistanceMsBinocularDistanceMs, the results are
not transformed into distance values.
For this task, the three operators binocular_disparitybinocular_disparityBinocularDisparitybinocular_disparityBinocularDisparityBinocularDisparity,
binocular_disparity_mgbinocular_disparity_mgBinocularDisparityMgbinocular_disparity_mgBinocularDisparityMgBinocularDisparityMg, and binocular_disparity_msbinocular_disparity_msBinocularDisparityMsbinocular_disparity_msBinocularDisparityMsBinocularDisparityMs
can be used. binocular_disparitybinocular_disparityBinocularDisparitybinocular_disparityBinocularDisparityBinocularDisparity returns robust results
in regions of sufficient texture but fails where is none.
binocular_disparity_mgbinocular_disparity_mgBinocularDisparityMgbinocular_disparity_mgBinocularDisparityMgBinocularDisparityMg interpolates low-texture regions
but blurs discontinuities. binocular_disparity_msbinocular_disparity_msBinocularDisparityMsbinocular_disparity_msBinocularDisparityMsBinocularDisparityMs preserves
discontinuities and interpolates partially.
binocular_disparity_msbinocular_disparity_msBinocularDisparityMsbinocular_disparity_msBinocularDisparityMsBinocularDisparityMs requires a reference image
ImageRect1ImageRect1ImageRect1ImageRect1ImageRect1imageRect1 and a search image ImageRect2ImageRect2ImageRect2ImageRect2ImageRect2imageRect2 which both
must be rectified, i.e., corresponding pixels must have the same
row coordinate. If this assumption is violated, the images
can be rectified by using the operators calibrate_camerascalibrate_camerasCalibrateCamerascalibrate_camerasCalibrateCamerasCalibrateCameras,
gen_binocular_rectification_mapgen_binocular_rectification_mapGenBinocularRectificationMapgen_binocular_rectification_mapGenBinocularRectificationMapGenBinocularRectificationMap, and map_imagemap_imageMapImagemap_imageMapImageMapImage.
ImageRect1ImageRect1ImageRect1ImageRect1ImageRect1imageRect1 and ImageRect2ImageRect2ImageRect2ImageRect2ImageRect2imageRect2 can have different widths,
but must have the same height. Given a pixel in ImageRect1ImageRect1ImageRect1ImageRect1ImageRect1imageRect1,
the homologous pixel in ImageRect2ImageRect2ImageRect2ImageRect2ImageRect2imageRect2 is selected by searching
along the corresponding row in ImageRect2ImageRect2ImageRect2ImageRect2ImageRect2imageRect2
and matching both pixels based on a similarity measure.
The disparity is the number of pixels
by which each pixel in ImageRect1ImageRect1ImageRect1ImageRect1ImageRect1imageRect1 needs to be moved
to reach the homologous pixel in ImageRect2ImageRect2ImageRect2ImageRect2ImageRect2imageRect2.
The search space is confined by the minimum and maximum disparity value
MinDisparityMinDisparityMinDisparityMinDisparityMinDisparityminDisparity and MaxDisparityMaxDisparityMaxDisparityMaxDisparityMaxDisparitymaxDisparity.
Their difference must not exceed 255.
The similarity measure can be specified by setting GenParamNameGenParamNameGenParamNameGenParamNameGenParamNamegenParamName
to 'similarity_measure'"similarity_measure""similarity_measure""similarity_measure""similarity_measure""similarity_measure" and GenParamValueGenParamValueGenParamValueGenParamValueGenParamValuegenParamValue
to the desired value. For both options
'census_dense'"census_dense""census_dense""census_dense""census_dense""census_dense" (default) and 'census_sparse'"census_sparse""census_sparse""census_sparse""census_sparse""census_sparse",
the similarity measure is based on the Census transform.
A Census transformed image contains for every pixel information
about the intensity topology within a support window around it.
'census_dense'"census_dense""census_dense""census_dense""census_dense""census_dense" uses a dense 9 x 7 pixels window.
'census_sparse'"census_sparse""census_sparse""census_sparse""census_sparse""census_sparse" uses a sparse 15 x 15 pixels window
where only a subset of the pixels is evaluated.
While 'census_dense'"census_dense""census_dense""census_dense""census_dense""census_dense" is more suitable for fine structures,
'census_sparse'"census_sparse""census_sparse""census_sparse""census_sparse""census_sparse" is more robust on low texture areas.
To calculate the disparities from the similarity measure,
the intermediate results are optimized by a multi-scanline method.
The optimization increases the robustness in low-texture areas
without blurring discontinuities in the disparity image.
The optimization is controlled by the parameters
SurfaceSmoothingSurfaceSmoothingSurfaceSmoothingSurfaceSmoothingSurfaceSmoothingsurfaceSmoothing and EdgeSmoothingEdgeSmoothingEdgeSmoothingEdgeSmoothingEdgeSmoothingedgeSmoothing.
SurfaceSmoothingSurfaceSmoothingSurfaceSmoothingSurfaceSmoothingSurfaceSmoothingsurfaceSmoothing controls the smoothness within surfaces.
High values suppress disparity differences of one pixel.
EdgeSmoothingEdgeSmoothingEdgeSmoothingEdgeSmoothingEdgeSmoothingedgeSmoothing controls the occurrence and the shape of edges.
Low values allow many edges, high values lead to fewer and rounder edges.
For both parameters, reasonable values usually range between 0 and 100.
If both parameters are set to zero, no optimization is performed.
The resulting disparity is returned in the single-channel image
DisparityDisparityDisparityDisparityDisparitydisparity. A quality measure for each disparity value
is returned in ScoreScoreScoreScoreScorescore, containing the best (lowest) result
of the optimized similarity measure of a reference pixel.
Finally, there are two optional post-processing steps. A consistency check
is applied if GenParamNameGenParamNameGenParamNameGenParamNameGenParamNamegenParamName is set to 'consistency_check'"consistency_check""consistency_check""consistency_check""consistency_check""consistency_check"
and GenParamValueGenParamValueGenParamValueGenParamValueGenParamValuegenParamValue is set to 'true'"true""true""true""true""true" (default).
This increases the robustness of the returned matches since the
result relies on a concurrent direct and reverse match. It is switched off
by setting GenParamValueGenParamValueGenParamValueGenParamValueGenParamValuegenParamValue to 'false'"false""false""false""false""false".
Sub-pixel refinement of disparities is performed by setting
GenParamNameGenParamNameGenParamNameGenParamNameGenParamNamegenParamName to 'sub_disparity'"sub_disparity""sub_disparity""sub_disparity""sub_disparity""sub_disparity" and GenParamValueGenParamValueGenParamValueGenParamValueGenParamValuegenParamValue
to 'true'"true""true""true""true""true" (default). It is switched off by setting
GenParamValueGenParamValueGenParamValueGenParamValueGenParamValuegenParamValue to 'false'"false""false""false""false""false".
The runtime of the operator is approximately linear to the image width,
the image height, and the disparity range. Consequently, the disparity range
should be chosen as narrow as possible for large images.
- Supports OpenCL compute devices.
- Multithreading type: reentrant (runs in parallel with non-exclusive operators).
- Multithreading scope: global (may be called from any thread).
- Automatically parallelized on tuple level.
- Automatically parallelized on internal data level.
Rectified image of camera 1.
Rectified image of camera 2.
Score of the calculated disparity.
Minimum of the expected disparities.
Default value: -30
Typical range of values: -32768
≤
MinDisparity
MinDisparity
MinDisparity
MinDisparity
MinDisparity
minDisparity
≤
32767
Maximum of the expected disparities.
Default value: 30
Typical range of values: -32768
≤
MaxDisparity
MaxDisparity
MaxDisparity
MaxDisparity
MaxDisparity
maxDisparity
≤
32767
Restriction: MinDisparity <= MaxDisparity && MaxDisparity <= MinDisparity + 255
Smoothing of surfaces.
Default value: 50
Suggested values: 20, 50, 100
Restriction: SurfaceSmoothing >= 0
Smoothing of edges.
Default value: 50
Suggested values: 20, 50, 100
Restriction: EdgeSmoothing >= 0
Parameter name(s) for the multi-scanline algorithm.
Default value: []
List of values: 'consistency_check'"consistency_check""consistency_check""consistency_check""consistency_check""consistency_check", 'similarity_measure'"similarity_measure""similarity_measure""similarity_measure""similarity_measure""similarity_measure", 'sub_disparity'"sub_disparity""sub_disparity""sub_disparity""sub_disparity""sub_disparity"
Parameter value(s) for the multi-scanline algorithm.
Default value: []
Suggested values: 'census_dense'"census_dense""census_dense""census_dense""census_dense""census_dense", 'census_sparse'"census_sparse""census_sparse""census_sparse""census_sparse""census_sparse", 'true'"true""true""true""true""true", 'false'"false""false""false""false""false"
read_image (BaseballL, 'stereo/epipolar/baseball_l')
read_image (BaseballR, 'stereo/epipolar/baseball_r')
binocular_disparity_ms (BaseballL, BaseballR, Disparity, Score, \
-40, -10, 50, 50, [], [])
If the parameter values are correct, binocular_disparity_msbinocular_disparity_msBinocularDisparityMsbinocular_disparity_msBinocularDisparityMsBinocularDisparityMs
returns the value 2 (H_MSG_TRUE). If the input is empty (no input images are
available) the behavior can be set via
set_system('no_object_result',<Result>)set_system("no_object_result",<Result>)SetSystem("no_object_result",<Result>)set_system("no_object_result",<Result>)SetSystem("no_object_result",<Result>)SetSystem("no_object_result",<Result>). If necessary, an
exception is raised.
map_imagemap_imageMapImagemap_imageMapImageMapImage
thresholdthresholdThresholdthresholdThresholdThreshold,
disparity_to_distancedisparity_to_distanceDisparityToDistancedisparity_to_distanceDisparityToDistanceDisparityToDistance,
disparity_image_to_xyzdisparity_image_to_xyzDisparityImageToXyzdisparity_image_to_xyzDisparityImageToXyzDisparityImageToXyz
binocular_disparitybinocular_disparityBinocularDisparitybinocular_disparityBinocularDisparityBinocularDisparity,
binocular_disparity_mgbinocular_disparity_mgBinocularDisparityMgbinocular_disparity_mgBinocularDisparityMgBinocularDisparityMg,
binocular_distancebinocular_distanceBinocularDistancebinocular_distanceBinocularDistanceBinocularDistance,
binocular_distance_mgbinocular_distance_mgBinocularDistanceMgbinocular_distance_mgBinocularDistanceMgBinocularDistanceMg,
binocular_distance_msbinocular_distance_msBinocularDistanceMsbinocular_distance_msBinocularDistanceMsBinocularDistanceMs
map_imagemap_imageMapImagemap_imageMapImageMapImage,
gen_binocular_rectification_mapgen_binocular_rectification_mapGenBinocularRectificationMapgen_binocular_rectification_mapGenBinocularRectificationMapGenBinocularRectificationMap,
binocular_calibrationbinocular_calibrationBinocularCalibrationbinocular_calibrationBinocularCalibrationBinocularCalibration
3D Metrology