ClassesClassesClassesClasses | | | | Operators

binocular_distance_msT_binocular_distance_msBinocularDistanceMsbinocular_distance_msBinocularDistanceMsBinocularDistanceMs (Operator)

Name

binocular_distance_msT_binocular_distance_msBinocularDistanceMsbinocular_distance_msBinocularDistanceMsBinocularDistanceMs — Compute the distance values for a rectified stereo image pair using multi-scanline optimization.

Signature

binocular_distance_ms(ImageRect1, ImageRect2 : Distance, Score : CamParamRect1, CamParamRect2, RelPoseRect, MinDisparity, MaxDisparity, SurfaceSmoothing, EdgeSmoothing, GenParamName, GenParamValue : )

Herror T_binocular_distance_ms(const Hobject ImageRect1, const Hobject ImageRect2, Hobject* Distance, Hobject* Score, const Htuple CamParamRect1, const Htuple CamParamRect2, const Htuple RelPoseRect, const Htuple MinDisparity, const Htuple MaxDisparity, const Htuple SurfaceSmoothing, const Htuple EdgeSmoothing, const Htuple GenParamName, const Htuple GenParamValue)

Herror binocular_distance_ms(Hobject ImageRect1, Hobject ImageRect2, Hobject* Distance, Hobject* Score, const HTuple& CamParamRect1, const HTuple& CamParamRect2, const HTuple& RelPoseRect, const HTuple& MinDisparity, const HTuple& MaxDisparity, const HTuple& SurfaceSmoothing, const HTuple& EdgeSmoothing, const HTuple& GenParamName, const HTuple& GenParamValue)

HImage HImage::BinocularDistanceMs(const HImage& ImageRect2, HImage* Score, const HTuple& CamParamRect1, const HTuple& CamParamRect2, const HTuple& RelPoseRect, const HTuple& MinDisparity, const HTuple& MaxDisparity, const HTuple& SurfaceSmoothing, const HTuple& EdgeSmoothing, const HTuple& GenParamName, const HTuple& GenParamValue) const

void BinocularDistanceMs(const HObject& ImageRect1, const HObject& ImageRect2, HObject* Distance, HObject* Score, const HTuple& CamParamRect1, const HTuple& CamParamRect2, const HTuple& RelPoseRect, const HTuple& MinDisparity, const HTuple& MaxDisparity, const HTuple& SurfaceSmoothing, const HTuple& EdgeSmoothing, const HTuple& GenParamName, const HTuple& GenParamValue)

HImage HImage::BinocularDistanceMs(const HImage& ImageRect2, HImage* Score, const HTuple& CamParamRect1, const HTuple& CamParamRect2, const HPose& RelPoseRect, Hlong MinDisparity, Hlong MaxDisparity, Hlong SurfaceSmoothing, Hlong EdgeSmoothing, const HTuple& GenParamName, const HTuple& GenParamValue) const

HImage HImage::BinocularDistanceMs(const HImage& ImageRect2, HImage* Score, const HTuple& CamParamRect1, const HTuple& CamParamRect2, const HPose& RelPoseRect, Hlong MinDisparity, Hlong MaxDisparity, Hlong SurfaceSmoothing, Hlong EdgeSmoothing, const HString& GenParamName, const HString& GenParamValue) const

HImage HImage::BinocularDistanceMs(const HImage& ImageRect2, HImage* Score, const HTuple& CamParamRect1, const HTuple& CamParamRect2, const HPose& RelPoseRect, Hlong MinDisparity, Hlong MaxDisparity, Hlong SurfaceSmoothing, Hlong EdgeSmoothing, const char* GenParamName, const char* GenParamValue) const

HImage HPose::BinocularDistanceMs(const HImage& ImageRect1, const HImage& ImageRect2, HImage* Score, const HTuple& CamParamRect1, const HTuple& CamParamRect2, Hlong MinDisparity, Hlong MaxDisparity, Hlong SurfaceSmoothing, Hlong EdgeSmoothing, const HTuple& GenParamName, const HTuple& GenParamValue) const

HImage HPose::BinocularDistanceMs(const HImage& ImageRect1, const HImage& ImageRect2, HImage* Score, const HTuple& CamParamRect1, const HTuple& CamParamRect2, Hlong MinDisparity, Hlong MaxDisparity, Hlong SurfaceSmoothing, Hlong EdgeSmoothing, const HString& GenParamName, const HString& GenParamValue) const

HImage HPose::BinocularDistanceMs(const HImage& ImageRect1, const HImage& ImageRect2, HImage* Score, const HTuple& CamParamRect1, const HTuple& CamParamRect2, Hlong MinDisparity, Hlong MaxDisparity, Hlong SurfaceSmoothing, Hlong EdgeSmoothing, const char* GenParamName, const char* GenParamValue) const

void HOperatorSetX.BinocularDistanceMs(
[in] IHUntypedObjectX* ImageRect1, [in] IHUntypedObjectX* ImageRect2, [out] IHUntypedObjectX*Distance, [out] IHUntypedObjectX*Score, [in] VARIANT CamParamRect1, [in] VARIANT CamParamRect2, [in] VARIANT RelPoseRect, [in] VARIANT MinDisparity, [in] VARIANT MaxDisparity, [in] VARIANT SurfaceSmoothing, [in] VARIANT EdgeSmoothing, [in] VARIANT GenParamName, [in] VARIANT GenParamValue)

IHImageX* HImageX.BinocularDistanceMs(
[in] IHImageX* ImageRect2, [out] IHImageX*Score, [in] VARIANT CamParamRect1, [in] VARIANT CamParamRect2, [in] VARIANT RelPoseRect, [in] Hlong MinDisparity, [in] Hlong MaxDisparity, [in] Hlong SurfaceSmoothing, [in] Hlong EdgeSmoothing, [in] VARIANT GenParamName, [in] VARIANT GenParamValue)

IHImageX* HPoseX.BinocularDistanceMs(
[in] IHImageX* ImageRect1, [in] IHImageX* ImageRect2, [out] IHImageX*Score, [in] VARIANT CamParamRect1, [in] VARIANT CamParamRect2, [in] VARIANT RelPoseRect, [in] Hlong MinDisparity, [in] Hlong MaxDisparity, [in] Hlong SurfaceSmoothing, [in] Hlong EdgeSmoothing, [in] VARIANT GenParamName, [in] VARIANT GenParamValue)

static void HOperatorSet.BinocularDistanceMs(HObject imageRect1, HObject imageRect2, out HObject distance, out HObject score, HTuple camParamRect1, HTuple camParamRect2, HTuple relPoseRect, HTuple minDisparity, HTuple maxDisparity, HTuple surfaceSmoothing, HTuple edgeSmoothing, HTuple genParamName, HTuple genParamValue)

HImage HImage.BinocularDistanceMs(HImage imageRect2, out HImage score, HTuple camParamRect1, HTuple camParamRect2, HPose relPoseRect, int minDisparity, int maxDisparity, int surfaceSmoothing, int edgeSmoothing, HTuple genParamName, HTuple genParamValue)

HImage HImage.BinocularDistanceMs(HImage imageRect2, out HImage score, HTuple camParamRect1, HTuple camParamRect2, HPose relPoseRect, int minDisparity, int maxDisparity, int surfaceSmoothing, int edgeSmoothing, string genParamName, string genParamValue)

HImage HPose.BinocularDistanceMs(HImage imageRect1, HImage imageRect2, out HImage score, HTuple camParamRect1, HTuple camParamRect2, int minDisparity, int maxDisparity, int surfaceSmoothing, int edgeSmoothing, HTuple genParamName, HTuple genParamValue)

HImage HPose.BinocularDistanceMs(HImage imageRect1, HImage imageRect2, out HImage score, HTuple camParamRect1, HTuple camParamRect2, int minDisparity, int maxDisparity, int surfaceSmoothing, int edgeSmoothing, string genParamName, string genParamValue)

Description

binocular_distance_msbinocular_distance_msBinocularDistanceMsbinocular_distance_msBinocularDistanceMsBinocularDistanceMs computes the distance values for a rectified stereo image pair using multi-scanline optimization. The operator first calculates the disparities between two rectified images ImageRect1ImageRect1ImageRect1ImageRect1ImageRect1imageRect1 and ImageRect2ImageRect2ImageRect2ImageRect2ImageRect2imageRect2 similar to binocular_disparity_msbinocular_disparity_msBinocularDisparityMsbinocular_disparity_msBinocularDisparityMsBinocularDisparityMs. The resulting disparity values are then transformed into distance values of the corresponding 3D world points to the rectified stereo camera system as in disparity_to_distancedisparity_to_distanceDisparityToDistancedisparity_to_distanceDisparityToDistanceDisparityToDistance. The distances are returned in the single-channel image DistanceDistanceDistanceDistanceDistancedistance in which each gray value represents the distance of the respective 3D world point to the stereo camera system.

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.

For the transformation of the disparity to the distance, the internal camera parameters of the rectified camera 1 CamParamRect1CamParamRect1CamParamRect1CamParamRect1CamParamRect1camParamRect1 and of the rectified camera 2 CamParamRect2CamParamRect2CamParamRect2CamParamRect2CamParamRect2camParamRect2, as well as the relative pose of the cameras RelPoseRectRelPoseRectRelPoseRectRelPoseRectRelPoseRectrelPoseRect must be specified. The relative pose defines a point transformation from the rectified camera system 2 to the rectified camera system 1. These parameters can be obtained from the operators calibrate_camerascalibrate_camerasCalibrateCamerascalibrate_camerasCalibrateCamerasCalibrateCameras and gen_binocular_rectification_mapgen_binocular_rectification_mapGenBinocularRectificationMapgen_binocular_rectification_mapGenBinocularRectificationMapGenBinocularRectificationMap.

A detailed description of the remaining parameters can be found in the documentation of binocular_disparity_msbinocular_disparity_msBinocularDisparityMsbinocular_disparity_msBinocularDisparityMsBinocularDisparityMs.

Attention

If using cameras with telecentric lenses, the DistanceDistanceDistanceDistanceDistancedistance is not defined as the distance of a point to the camera but as the distance from the point to the plane, defined by the y-axes of both cameras and their baseline (see gen_binocular_rectification_mapgen_binocular_rectification_mapGenBinocularRectificationMapgen_binocular_rectification_mapGenBinocularRectificationMapGenBinocularRectificationMap).

Parallelization

Parameters

ImageRect1ImageRect1ImageRect1ImageRect1ImageRect1imageRect1 (input_object)  singlechannelimage objectHImageHImageHImageHImageXHobject (byte*) *allowed for compute devices

Rectified image of camera 1.

ImageRect2ImageRect2ImageRect2ImageRect2ImageRect2imageRect2 (input_object)  singlechannelimage objectHImageHImageHImageHImageXHobject (byte*) *allowed for compute devices

Rectified image of camera 2.

DistanceDistanceDistanceDistanceDistancedistance (output_object)  singlechannelimage objectHImageHImageHImageHImageXHobject * (real)

Distance image.

ScoreScoreScoreScoreScorescore (output_object)  singlechannelimage objectHImageHImageHImageHImageXHobject * (real)

Score of the calculated disparity.

CamParamRect1CamParamRect1CamParamRect1CamParamRect1CamParamRect1camParamRect1 (input_control)  number-array HTupleHTupleHTupleVARIANTHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong) (double / Hlong) (double / Hlong)

Internal camera parameters of the rectified camera 1.

Number of elements: CamParamRect1 == 8 || CamParamRect1 == 12

CamParamRect2CamParamRect2CamParamRect2CamParamRect2CamParamRect2camParamRect2 (input_control)  number-array HTupleHTupleHTupleVARIANTHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong) (double / Hlong) (double / Hlong)

Internal camera parameters of the rectified camera 2.

Number of elements: CamParamRect2 == 8 || CamParamRect2 == 12

RelPoseRectRelPoseRectRelPoseRectRelPoseRectRelPoseRectrelPoseRect (input_control)  pose HPose, HTupleHTupleHTupleHPoseX, VARIANTHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong) (double / Hlong) (double / Hlong)

Point transformation from the rectified camera 2 to the rectified camera 1.

Number of elements: 7

MinDisparityMinDisparityMinDisparityMinDisparityMinDisparityminDisparity (input_control)  integer HTupleHTupleHTupleVARIANTHtuple (integer) (int / long) (Hlong) (Hlong) (Hlong) (Hlong)

Minimum of the expected disparities.

Default value: -30

Typical range of values: -32768 ≤ MinDisparity MinDisparity MinDisparity MinDisparity MinDisparity minDisparity ≤ 32767

MaxDisparityMaxDisparityMaxDisparityMaxDisparityMaxDisparitymaxDisparity (input_control)  integer HTupleHTupleHTupleVARIANTHtuple (integer) (int / long) (Hlong) (Hlong) (Hlong) (Hlong)

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

SurfaceSmoothingSurfaceSmoothingSurfaceSmoothingSurfaceSmoothingSurfaceSmoothingsurfaceSmoothing (input_control)  integer HTupleHTupleHTupleVARIANTHtuple (integer) (int / long) (Hlong) (Hlong) (Hlong) (Hlong)

Smoothing of surfaces.

Default value: 50

Suggested values: 20, 50, 100

Restriction: SurfaceSmoothing >= 0

EdgeSmoothingEdgeSmoothingEdgeSmoothingEdgeSmoothingEdgeSmoothingedgeSmoothing (input_control)  integer HTupleHTupleHTupleVARIANTHtuple (integer) (int / long) (Hlong) (Hlong) (Hlong) (Hlong)

Smoothing of edges.

Default value: 50

Suggested values: 20, 50, 100

Restriction: EdgeSmoothing >= 0

GenParamNameGenParamNameGenParamNameGenParamNameGenParamNamegenParamName (input_control)  attribute.name(-array) HTupleHTupleHTupleVARIANTHtuple (string) (string) (HString) (char*) (BSTR) (char*)

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"

GenParamValueGenParamValueGenParamValueGenParamValueGenParamValuegenParamValue (input_control)  attribute.value(-array) HTupleHTupleHTupleVARIANTHtuple (string) (string) (HString) (char*) (BSTR) (char*)

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"

Result

If the parameter values are correct, binocular_distance_msbinocular_distance_msBinocularDistanceMsbinocular_distance_msBinocularDistanceMsBinocularDistanceMs 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.

Possible Predecessors

map_imagemap_imageMapImagemap_imageMapImageMapImage

Possible Successors

thresholdthresholdThresholdthresholdThresholdThreshold

Alternatives

binocular_distancebinocular_distanceBinocularDistancebinocular_distanceBinocularDistanceBinocularDistance, binocular_distance_mgbinocular_distance_mgBinocularDistanceMgbinocular_distance_mgBinocularDistanceMgBinocularDistanceMg, binocular_disparitybinocular_disparityBinocularDisparitybinocular_disparityBinocularDisparityBinocularDisparity, binocular_disparity_mgbinocular_disparity_mgBinocularDisparityMgbinocular_disparity_mgBinocularDisparityMgBinocularDisparityMg, binocular_disparity_msbinocular_disparity_msBinocularDisparityMsbinocular_disparity_msBinocularDisparityMsBinocularDisparityMs

See also

map_imagemap_imageMapImagemap_imageMapImageMapImage, gen_binocular_rectification_mapgen_binocular_rectification_mapGenBinocularRectificationMapgen_binocular_rectification_mapGenBinocularRectificationMapGenBinocularRectificationMap, binocular_calibrationbinocular_calibrationBinocularCalibrationbinocular_calibrationBinocularCalibrationBinocularCalibration, disparity_to_distancedisparity_to_distanceDisparityToDistancedisparity_to_distanceDisparityToDistanceDisparityToDistance, distance_to_disparitydistance_to_disparityDistanceToDisparitydistance_to_disparityDistanceToDisparityDistanceToDisparity, disparity_image_to_xyzdisparity_image_to_xyzDisparityImageToXyzdisparity_image_to_xyzDisparityImageToXyzDisparityImageToXyz

Module

3D Metrology


ClassesClassesClassesClasses | | | | Operators