binocular_distance T_binocular_distance BinocularDistance BinocularDistance binocular_distance (Operator)
binocular_distance T_binocular_distance BinocularDistance BinocularDistance binocular_distance
— Compute the distance values for a rectified stereo image pair using
correlation techniques.
Signature
binocular_distance (ImageRect1 , ImageRect2 : Distance , Score : CamParamRect1 , CamParamRect2 , RelPoseRect , Method , MaskWidth , MaskHeight , TextureThresh , MinDisparity , MaxDisparity , NumLevels , ScoreThresh , Filter , SubDistance : )
Herror T_binocular_distance (const Hobject ImageRect1 , const Hobject ImageRect2 , Hobject* Distance , Hobject* Score , const Htuple CamParamRect1 , const Htuple CamParamRect2 , const Htuple RelPoseRect , const Htuple Method , const Htuple MaskWidth , const Htuple MaskHeight , const Htuple TextureThresh , const Htuple MinDisparity , const Htuple MaxDisparity , const Htuple NumLevels , const Htuple ScoreThresh , const Htuple Filter , const Htuple SubDistance )
void BinocularDistance (const HObject& ImageRect1 , const HObject& ImageRect2 , HObject* Distance , HObject* Score , const HTuple& CamParamRect1 , const HTuple& CamParamRect2 , const HTuple& RelPoseRect , const HTuple& Method , const HTuple& MaskWidth , const HTuple& MaskHeight , const HTuple& TextureThresh , const HTuple& MinDisparity , const HTuple& MaxDisparity , const HTuple& NumLevels , const HTuple& ScoreThresh , const HTuple& Filter , const HTuple& SubDistance )
HImage HImage ::BinocularDistance (const HImage& ImageRect2 , HImage* Score , const HCamPar& CamParamRect1 , const HCamPar& CamParamRect2 , const HPose& RelPoseRect , const HString& Method , Hlong MaskWidth , Hlong MaskHeight , const HTuple& TextureThresh , Hlong MinDisparity , Hlong MaxDisparity , Hlong NumLevels , const HTuple& ScoreThresh , const HTuple& Filter , const HTuple& SubDistance ) const
HImage HImage ::BinocularDistance (const HImage& ImageRect2 , HImage* Score , const HCamPar& CamParamRect1 , const HCamPar& CamParamRect2 , const HPose& RelPoseRect , const HString& Method , Hlong MaskWidth , Hlong MaskHeight , double TextureThresh , Hlong MinDisparity , Hlong MaxDisparity , Hlong NumLevels , double ScoreThresh , const HString& Filter , const HString& SubDistance ) const
HImage HImage ::BinocularDistance (const HImage& ImageRect2 , HImage* Score , const HCamPar& CamParamRect1 , const HCamPar& CamParamRect2 , const HPose& RelPoseRect , const char* Method , Hlong MaskWidth , Hlong MaskHeight , double TextureThresh , Hlong MinDisparity , Hlong MaxDisparity , Hlong NumLevels , double ScoreThresh , const char* Filter , const char* SubDistance ) const
HImage HImage ::BinocularDistance (const HImage& ImageRect2 , HImage* Score , const HCamPar& CamParamRect1 , const HCamPar& CamParamRect2 , const HPose& RelPoseRect , const wchar_t* Method , Hlong MaskWidth , Hlong MaskHeight , double TextureThresh , Hlong MinDisparity , Hlong MaxDisparity , Hlong NumLevels , double ScoreThresh , const wchar_t* Filter , const wchar_t* SubDistance ) const
(
Windows only)
HImage HCamPar ::BinocularDistance (const HImage& ImageRect1 , const HImage& ImageRect2 , HImage* Score , const HCamPar& CamParamRect2 , const HPose& RelPoseRect , const HString& Method , Hlong MaskWidth , Hlong MaskHeight , const HTuple& TextureThresh , Hlong MinDisparity , Hlong MaxDisparity , Hlong NumLevels , const HTuple& ScoreThresh , const HTuple& Filter , const HTuple& SubDistance ) const
HImage HCamPar ::BinocularDistance (const HImage& ImageRect1 , const HImage& ImageRect2 , HImage* Score , const HCamPar& CamParamRect2 , const HPose& RelPoseRect , const HString& Method , Hlong MaskWidth , Hlong MaskHeight , double TextureThresh , Hlong MinDisparity , Hlong MaxDisparity , Hlong NumLevels , double ScoreThresh , const HString& Filter , const HString& SubDistance ) const
HImage HCamPar ::BinocularDistance (const HImage& ImageRect1 , const HImage& ImageRect2 , HImage* Score , const HCamPar& CamParamRect2 , const HPose& RelPoseRect , const char* Method , Hlong MaskWidth , Hlong MaskHeight , double TextureThresh , Hlong MinDisparity , Hlong MaxDisparity , Hlong NumLevels , double ScoreThresh , const char* Filter , const char* SubDistance ) const
HImage HCamPar ::BinocularDistance (const HImage& ImageRect1 , const HImage& ImageRect2 , HImage* Score , const HCamPar& CamParamRect2 , const HPose& RelPoseRect , const wchar_t* Method , Hlong MaskWidth , Hlong MaskHeight , double TextureThresh , Hlong MinDisparity , Hlong MaxDisparity , Hlong NumLevels , double ScoreThresh , const wchar_t* Filter , const wchar_t* SubDistance ) const
(
Windows only)
HImage HPose ::BinocularDistance (const HImage& ImageRect1 , const HImage& ImageRect2 , HImage* Score , const HCamPar& CamParamRect1 , const HCamPar& CamParamRect2 , const HString& Method , Hlong MaskWidth , Hlong MaskHeight , const HTuple& TextureThresh , Hlong MinDisparity , Hlong MaxDisparity , Hlong NumLevels , const HTuple& ScoreThresh , const HTuple& Filter , const HTuple& SubDistance ) const
HImage HPose ::BinocularDistance (const HImage& ImageRect1 , const HImage& ImageRect2 , HImage* Score , const HCamPar& CamParamRect1 , const HCamPar& CamParamRect2 , const HString& Method , Hlong MaskWidth , Hlong MaskHeight , double TextureThresh , Hlong MinDisparity , Hlong MaxDisparity , Hlong NumLevels , double ScoreThresh , const HString& Filter , const HString& SubDistance ) const
HImage HPose ::BinocularDistance (const HImage& ImageRect1 , const HImage& ImageRect2 , HImage* Score , const HCamPar& CamParamRect1 , const HCamPar& CamParamRect2 , const char* Method , Hlong MaskWidth , Hlong MaskHeight , double TextureThresh , Hlong MinDisparity , Hlong MaxDisparity , Hlong NumLevels , double ScoreThresh , const char* Filter , const char* SubDistance ) const
HImage HPose ::BinocularDistance (const HImage& ImageRect1 , const HImage& ImageRect2 , HImage* Score , const HCamPar& CamParamRect1 , const HCamPar& CamParamRect2 , const wchar_t* Method , Hlong MaskWidth , Hlong MaskHeight , double TextureThresh , Hlong MinDisparity , Hlong MaxDisparity , Hlong NumLevels , double ScoreThresh , const wchar_t* Filter , const wchar_t* SubDistance ) const
(
Windows only)
static void HOperatorSet .BinocularDistance (HObject imageRect1 , HObject imageRect2 , out HObject distance , out HObject score , HTuple camParamRect1 , HTuple camParamRect2 , HTuple relPoseRect , HTuple method , HTuple maskWidth , HTuple maskHeight , HTuple textureThresh , HTuple minDisparity , HTuple maxDisparity , HTuple numLevels , HTuple scoreThresh , HTuple filter , HTuple subDistance )
HImage HImage .BinocularDistance (HImage imageRect2 , out HImage score , HCamPar camParamRect1 , HCamPar camParamRect2 , HPose relPoseRect , string method , int maskWidth , int maskHeight , HTuple textureThresh , int minDisparity , int maxDisparity , int numLevels , HTuple scoreThresh , HTuple filter , HTuple subDistance )
HImage HImage .BinocularDistance (HImage imageRect2 , out HImage score , HCamPar camParamRect1 , HCamPar camParamRect2 , HPose relPoseRect , string method , int maskWidth , int maskHeight , double textureThresh , int minDisparity , int maxDisparity , int numLevels , double scoreThresh , string filter , string subDistance )
HImage HCamPar .BinocularDistance (HImage imageRect1 , HImage imageRect2 , out HImage score , HCamPar camParamRect2 , HPose relPoseRect , string method , int maskWidth , int maskHeight , HTuple textureThresh , int minDisparity , int maxDisparity , int numLevels , HTuple scoreThresh , HTuple filter , HTuple subDistance )
HImage HCamPar .BinocularDistance (HImage imageRect1 , HImage imageRect2 , out HImage score , HCamPar camParamRect2 , HPose relPoseRect , string method , int maskWidth , int maskHeight , double textureThresh , int minDisparity , int maxDisparity , int numLevels , double scoreThresh , string filter , string subDistance )
HImage HPose .BinocularDistance (HImage imageRect1 , HImage imageRect2 , out HImage score , HCamPar camParamRect1 , HCamPar camParamRect2 , string method , int maskWidth , int maskHeight , HTuple textureThresh , int minDisparity , int maxDisparity , int numLevels , HTuple scoreThresh , HTuple filter , HTuple subDistance )
HImage HPose .BinocularDistance (HImage imageRect1 , HImage imageRect2 , out HImage score , HCamPar camParamRect1 , HCamPar camParamRect2 , string method , int maskWidth , int maskHeight , double textureThresh , int minDisparity , int maxDisparity , int numLevels , double scoreThresh , string filter , string subDistance )
def binocular_distance (image_rect_1 : HObject, image_rect_2 : HObject, cam_param_rect_1 : Sequence[Union[int, float, str]], cam_param_rect_2 : Sequence[Union[int, float, str]], rel_pose_rect : Sequence[Union[int, float]], method : str, mask_width : int, mask_height : int, texture_thresh : Union[float, int], min_disparity : int, max_disparity : int, num_levels : int, score_thresh : Union[float, int], filter : MaybeSequence[str], sub_distance : MaybeSequence[str]) -> Tuple[HObject, HObject]
Description
binocular_distance binocular_distance BinocularDistance BinocularDistance binocular_distance
computes the distance values for a
rectified stereo image pair using correlation techniques. The
operator first calculates the disparities between the two images
ImageRect1 ImageRect1 ImageRect1 imageRect1 image_rect_1
and ImageRect2 ImageRect2 ImageRect2 imageRect2 image_rect_2
similar to
binocular_disparity binocular_disparity BinocularDisparity BinocularDisparity binocular_disparity
. The resulting disparities are
transformed into distance values of the corresponding 3D world
points to the rectified stereo camera system as in
disparity_to_distance disparity_to_distance DisparityToDistance DisparityToDistance disparity_to_distance
. The distances are returned in the
single-channel image Distance Distance Distance distance distance
in which each gray value
represents the distance of the respective 3D world point to the
stereo camera system.
The algorithm requires a reference image ImageRect1 ImageRect1 ImageRect1 imageRect1 image_rect_1
and a
search image ImageRect2 ImageRect2 ImageRect2 imageRect2 image_rect_2
which must be rectified, i.e.,
corresponding epipolar lines are parallel and lie on identical image
rows (
). In case this assumption is
violated the images can be rectified by using the operators
calibrate_cameras calibrate_cameras CalibrateCameras CalibrateCameras calibrate_cameras
, gen_binocular_rectification_map gen_binocular_rectification_map GenBinocularRectificationMap GenBinocularRectificationMap gen_binocular_rectification_map
and map_image map_image MapImage MapImage map_image
. Hence, given a pixel in the reference image
ImageRect1 ImageRect1 ImageRect1 imageRect1 image_rect_1
the homologous pixel in ImageRect2 ImageRect2 ImageRect2 imageRect2 image_rect_2
is
selected by searching along the corresponding row in
ImageRect2 ImageRect2 ImageRect2 imageRect2 image_rect_2
and matching a local neighborhood within a
rectangular window of size MaskWidth MaskWidth MaskWidth maskWidth mask_width
and
MaskHeight MaskHeight MaskHeight maskHeight mask_height
. For each defined reference pixel the pixel
correspondences are transformed into distances of the world points
defined by the intersection of the lines of sight of a corresponding
pixel pair to the
plane of the rectified stereo
system.
For this transformation the rectified internal camera parameters
CamParamRect1 CamParamRect1 CamParamRect1 camParamRect1 cam_param_rect_1
of camera 1 and CamParamRect2 CamParamRect2 CamParamRect2 camParamRect2 cam_param_rect_2
of
camera 2, and the pose with the external parameters RelPoseRect RelPoseRect RelPoseRect relPoseRect rel_pose_rect
have to be defined. Latter one is of the form
and characterizes the relative pose of both cameras to each other.
More precisely, it specifies the point transformation from the
rectified camera system 2 (ccsR2 ) into the rectified camera system
1 (ccsR1 ), see Transformations / Poses and
“Solution Guide III-C - 3D Vision”
.
These parameters can be obtained from the operator
calibrate_cameras calibrate_cameras CalibrateCameras CalibrateCameras calibrate_cameras
and
gen_binocular_rectification_map gen_binocular_rectification_map GenBinocularRectificationMap GenBinocularRectificationMap gen_binocular_rectification_map
. After all, a quality
measure for each distance value is returned in Score Score Score score score
,
containing the best result of the matching function
of a
reference pixel. For the matching, the gray values of the original
unprocessed images are used.
'sad' "sad" "sad" "sad" "sad" : Summed Absolute Differences
with
.
'ssd' "ssd" "ssd" "ssd" "ssd" : Summed Squared Differences
with
.
'ncc' "ncc" "ncc" "ncc" "ncc" : Normalized Cross Correlation
with
.
with
,
,
,
:
row and column coordinates of the corresponding
pixels of the two input images,
,
: gray values of the unprocessed input images,
: size of correlation window
: mean value within the correlation window of width
and height
.
Note that the methods 'sad' "sad" "sad" "sad" "sad" and 'ssd' "ssd" "ssd" "ssd" "ssd" compare the
gray values of the pixels within a mask window directly, whereas
'ncc' "ncc" "ncc" "ncc" "ncc" compensates for the mean gray value and its variance
within the mask window. Therefore, if the two images differ in
brightness and contrast, this method should be preferred. For images
with similar brightness and contrast 'sad' "sad" "sad" "sad" "sad" and
'ssd' "ssd" "ssd" "ssd" "ssd" are to be preferred as they are faster because of
less complex internal computations. See binocular_disparity binocular_disparity BinocularDisparity BinocularDisparity binocular_disparity
for further details.
It should be noted that the quality of correlation for rising
is
falling in methods 'sad' "sad" "sad" "sad" "sad" and 'ssd' "ssd" "ssd" "ssd" "ssd" (the best
quality value is 0) but rising in method 'ncc' "ncc" "ncc" "ncc" "ncc" (the best
quality value is 1.0).
The size of the correlation window (
and
)
has to be odd numbered and is
passed in MaskWidth MaskWidth MaskWidth maskWidth mask_width
and MaskHeight MaskHeight MaskHeight maskHeight mask_height
. The search
space is confined by the minimum and maximum disparity value
MinDisparity MinDisparity MinDisparity minDisparity min_disparity
and MaxDisparity MaxDisparity MaxDisparity maxDisparity max_disparity
. Due to pixel values
not defined beyond the image border the resulting domain of
Distance Distance Distance distance distance
and Score Score Score score score
is generally not set along the
image border within a margin of height MaskHeight MaskHeight MaskHeight maskHeight mask_height
/2 at the
top and bottom border and of width MaskWidth MaskWidth MaskWidth maskWidth mask_width
/2 at the left
and right border. For the same reason, the maximum disparity range
is reduced at the left and right image border.
Since matching turns out to be highly unreliable when dealing with
poorly textured areas, the minimum variance within the correlation
window can be defined in TextureThresh TextureThresh TextureThresh textureThresh texture_thresh
. This threshold is
applied on both input images ImageRect1 ImageRect1 ImageRect1 imageRect1 image_rect_1
and
ImageRect2 ImageRect2 ImageRect2 imageRect2 image_rect_2
. In addition, ScoreThresh ScoreThresh ScoreThresh scoreThresh score_thresh
guarantees
the matching quality and defines the maximum
('sad' "sad" "sad" "sad" "sad" ,'ssd' "ssd" "ssd" "ssd" "ssd" ) or, respectively, minimum
('ncc' "ncc" "ncc" "ncc" "ncc" ) score value of the correlation function. Setting
Filter Filter Filter filter filter
to 'left_right_check' "left_right_check" "left_right_check" "left_right_check" "left_right_check" , moreover, increases
the robustness of the returned matches, as the result relies on a
concurrent direct and reverse match, whereas 'none' "none" "none" "none" "none"
switches it off.
The number of pyramid levels used to improve the time response of
binocular_distance binocular_distance BinocularDistance BinocularDistance binocular_distance
is determined by
NumLevels NumLevels NumLevels numLevels num_levels
. Following a coarse-to-fine scheme disparity
images of higher levels are computed and segmented into
rectangular subimages to reduce the disparity range on the next
lower pyramid level. TextureThresh TextureThresh TextureThresh textureThresh texture_thresh
and ScoreThresh ScoreThresh ScoreThresh scoreThresh score_thresh
are applied on every level and the returned domain of the
Distance Distance Distance distance distance
and Score Score Score score score
images arises from the
intersection of the resulting domains of every single
level. Generally, pyramid structures are the more advantageous the
more the distance image can be segmented into regions of homogeneous
distance values and the bigger the disparity range must be
specified. As a drawback, coarse pyramid levels might loose
important texture information which can result in deficient distance
values.
Finally, the value 'interpolation' "interpolation" "interpolation" "interpolation" "interpolation" for parameter
SubDistance SubDistance SubDistance subDistance sub_distance
increases the refinement and accuracy of the
distance values. It is switched off by setting the parameter to
'none' "none" "none" "none" "none" .
Attention
If using cameras with telecentric lenses, the Distance Distance Distance distance distance
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_map gen_binocular_rectification_map GenBinocularRectificationMap GenBinocularRectificationMap gen_binocular_rectification_map
).
For a stereo setup of mixed type (i.e., for a stereo setup in which
one of the original cameras is a perspective camera and the other
camera is a telecentric camera; see
gen_binocular_rectification_map gen_binocular_rectification_map GenBinocularRectificationMap GenBinocularRectificationMap gen_binocular_rectification_map
), the rectifying plane of
the two cameras is in a position with respect to the object that
would lead to very unintuitive distances. Therefore,
binocular_distance binocular_distance BinocularDistance BinocularDistance binocular_distance
does not support a stereo setup of mixed
type. For stereo setups of mixed type, please use
reconstruct_surface_stereo reconstruct_surface_stereo ReconstructSurfaceStereo ReconstructSurfaceStereo reconstruct_surface_stereo
, in which the reference
coordinate system can be chosen arbitrarily. Alternatively,
binocular_disparity binocular_disparity BinocularDisparity BinocularDisparity binocular_disparity
and disparity_image_to_xyz disparity_image_to_xyz DisparityImageToXyz DisparityImageToXyz disparity_image_to_xyz
might
be used.
Additionally, stereo setups that contain cameras with and without hypercentric
lenses at the same time are not supported.
Execution Information
Multithreading type: reentrant (runs in parallel with non-exclusive operators).
Multithreading scope: global (may be called from any thread).
Automatically parallelized on internal data level.
Parameters
ImageRect1 ImageRect1 ImageRect1 imageRect1 image_rect_1
(input_object) singlechannelimage →
object HImage HObject HObject Hobject (byte)
Rectified image of camera 1.
ImageRect2 ImageRect2 ImageRect2 imageRect2 image_rect_2
(input_object) singlechannelimage →
object HImage HObject HObject Hobject (byte)
Rectified image of camera 2.
Distance Distance Distance distance distance
(output_object) singlechannelimage →
object HImage HObject HObject Hobject * (real)
Distance image.
Score Score Score score score
(output_object) singlechannelimage →
object HImage HObject HObject Hobject * (real)
Evaluation of a distance value.
CamParamRect1 CamParamRect1 CamParamRect1 camParamRect1 cam_param_rect_1
(input_control) campar →
HCamPar , HTuple Sequence[Union[int, float, str]] HTuple Htuple (real / integer / string) (double / int / long / string) (double / Hlong / HString) (double / Hlong / char*)
Internal camera parameters of the rectified camera 1.
CamParamRect2 CamParamRect2 CamParamRect2 camParamRect2 cam_param_rect_2
(input_control) campar →
HCamPar , HTuple Sequence[Union[int, float, str]] HTuple Htuple (real / integer / string) (double / int / long / string) (double / Hlong / HString) (double / Hlong / char*)
Internal camera parameters of the rectified camera 2.
RelPoseRect RelPoseRect RelPoseRect relPoseRect rel_pose_rect
(input_control) pose →
HPose , HTuple Sequence[Union[int, float]] HTuple Htuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Point transformation from the rectified camera 2 to
the rectified camera 1.
Number of elements:
7
Method Method Method method method
(input_control) string →
HTuple str HTuple Htuple (string) (string ) (HString ) (char* )
Matching function.
Default:
'ncc'
"ncc"
"ncc"
"ncc"
"ncc"
List of values:
'ncc' "ncc" "ncc" "ncc" "ncc" , 'sad' "sad" "sad" "sad" "sad" , 'ssd' "ssd" "ssd" "ssd" "ssd"
MaskWidth MaskWidth MaskWidth maskWidth mask_width
(input_control) integer →
HTuple int HTuple Htuple (integer) (int / long) (Hlong ) (Hlong )
Width of the correlation window.
Default:
11
Suggested values:
5, 7, 9, 11, 21
Restriction:
3 <= MaskWidth && odd(MaskWidth)
MaskHeight MaskHeight MaskHeight maskHeight mask_height
(input_control) integer →
HTuple int HTuple Htuple (integer) (int / long) (Hlong ) (Hlong )
Height of the correlation window.
Default:
11
Suggested values:
5, 7, 9, 11, 21
Restriction:
3 <= MaskHeight && odd(MaskHeight)
TextureThresh TextureThresh TextureThresh textureThresh texture_thresh
(input_control) real →
HTuple Union[float, int] HTuple Htuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Variance threshold of textured image regions.
Default:
0.0
Suggested values:
0.0, 2.0, 5.0, 10.0
Restriction:
0.0 <= TextureThresh
MinDisparity MinDisparity MinDisparity minDisparity min_disparity
(input_control) integer →
HTuple int HTuple Htuple (integer) (int / long) (Hlong ) (Hlong )
Minimum of the expected disparities.
Default:
0
Value range:
-32768
≤
MinDisparity
MinDisparity
MinDisparity
minDisparity
min_disparity
≤
32767
MaxDisparity MaxDisparity MaxDisparity maxDisparity max_disparity
(input_control) integer →
HTuple int HTuple Htuple (integer) (int / long) (Hlong ) (Hlong )
Maximum of the expected disparities.
Default:
30
Value range:
-32768
≤
MaxDisparity
MaxDisparity
MaxDisparity
maxDisparity
max_disparity
≤
32767
NumLevels NumLevels NumLevels numLevels num_levels
(input_control) integer →
HTuple int HTuple Htuple (integer) (int / long) (Hlong ) (Hlong )
Number of pyramid levels.
Default:
1
Suggested values:
1, 2, 3, 4
Restriction:
1 <= NumLevels
ScoreThresh ScoreThresh ScoreThresh scoreThresh score_thresh
(input_control) real →
HTuple Union[float, int] HTuple Htuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Threshold of the correlation function.
Default:
0.0
Suggested values:
0.0, 2.0, 5.0, 10.0
Filter Filter Filter filter filter
(input_control) string(-array) →
HTuple MaybeSequence[str] HTuple Htuple (string) (string ) (HString ) (char* )
Downstream filters.
Default:
'none'
"none"
"none"
"none"
"none"
List of values:
'left_right_check' "left_right_check" "left_right_check" "left_right_check" "left_right_check" , 'none' "none" "none" "none" "none"
SubDistance SubDistance SubDistance subDistance sub_distance
(input_control) string(-array) →
HTuple MaybeSequence[str] HTuple Htuple (string) (string ) (HString ) (char* )
Distance interpolation.
Default:
'none'
"none"
"none"
"none"
"none"
List of values:
'interpolation' "interpolation" "interpolation" "interpolation" "interpolation" , 'none' "none" "none" "none" "none"
Example (HDevelop)
* Set internal and external stereo parameters.
* Note that, typically, these values are the result of a prior
* calibration.
gen_cam_par_area_scan_division (0.01, -665, 5.2e-006, 5.2e-006, \
622, 517, 1280, 1024, CamParam1)
gen_cam_par_area_scan_division (0.01, -731, 5.2e-006, 5.2e-006, \
654, 519, 1280, 1024, CamParam2)
create_pose (0.1535,-0.0037,0.0447,0.17,319.84,359.89, \
'Rp+T', 'gba', 'point', RelPose)
* Compute the mapping for rectified images.
gen_binocular_rectification_map (Map1, Map2, CamParam1, CamParam2, \
RelPose, 1, 'viewing_direction', \
'bilinear', CamParamRect1, CamParamRect2, \
Cam1PoseRect1, Cam2PoseRect2, RelPoseRect)
* Compute the distance values in online images.
while (1)
grab_image_async (Image1, AcqHandle1, -1)
map_image (Image1, Map1, ImageRect1)
grab_image_async (Image2, AcqHandle2, -1)
map_image (Image2, Map2, ImageRect2)
binocular_distance (ImageRect1, ImageRect2, Distance, Score, \
CamParamRect1, CamParamRect2, RelPoseRect, 'sad', \
11, 11, 20, -40, 20, 2, 25, \
'left_right_check', 'interpolation')
endwhile
Example (HDevelop)
* Set internal and external stereo parameters.
* Note that, typically, these values are the result of a prior
* calibration.
gen_cam_par_area_scan_division (0.01, -665, 5.2e-006, 5.2e-006, \
622, 517, 1280, 1024, CamParam1)
gen_cam_par_area_scan_division (0.01, -731, 5.2e-006, 5.2e-006, \
654, 519, 1280, 1024, CamParam2)
create_pose (0.1535,-0.0037,0.0447,0.17,319.84,359.89, \
'Rp+T', 'gba', 'point', RelPose)
* Compute the mapping for rectified images.
gen_binocular_rectification_map (Map1, Map2, CamParam1, CamParam2, \
RelPose, 1, 'viewing_direction', \
'bilinear', CamParamRect1, CamParamRect2, \
Cam1PoseRect1, Cam2PoseRect2, RelPoseRect)
* Compute the distance values in online images.
while (1)
grab_image_async (Image1, AcqHandle1, -1)
map_image (Image1, Map1, ImageRect1)
grab_image_async (Image2, AcqHandle2, -1)
map_image (Image2, Map2, ImageRect2)
binocular_distance (ImageRect1, ImageRect2, Distance, Score, \
CamParamRect1, CamParamRect2, RelPoseRect, 'sad', \
11, 11, 20, -40, 20, 2, 25, \
'left_right_check', 'interpolation')
endwhile
Example (C++)
// Set internal and external stereo parameters.
// Note that, typically, these values are the result of a prior
// calibration.
gen_cam_par_area_scan_division (0.01, -665, 5.2e-006, 5.2e-006,
622, 517, 1280, 1024, &CamParam1);
gen_cam_par_area_scan_division (0.01, -731, 5.2e-006, 5.2e-006,
654, 519, 1280, 1024, &CamParam2);
create_pose (0.1535,-0.0037,0.0447,0.17,319.84,359.89,
"Rp+T", "gba", "point", &RelPose);
// Compute the mapping for rectified images.
gen_binocular_rectification_map(&Map1,&Map2,CamParam1,CamParam2,
RelPose,1,"viewing_direction",
"bilinear",&CamParamRect1,&CamParamRect2,
&CamPoseRect1,&CamPoseRect2,&RelPoseRect);
// Compute the distance values in online images.
while (1)
{
grab_image_async(&Image1,AcqHandle1,-1);
map_image(Image1,Map1,&ImageRect1);
grab_image_async(&Image2,AcqHandle2,-1);
map_image(Image2,Map2,&ImageRect2);
binocular_distance(ImageRect1,ImageRect2,&Distance,&Score,
CamParamRect1,CamParamRect2,RelPose,"sad",
11,11,20,-40,20,2,25,
"left_right_check","interpolation");
}
Example (HDevelop)
* Set internal and external stereo parameters.
* Note that, typically, these values are the result of a prior
* calibration.
gen_cam_par_area_scan_division (0.01, -665, 5.2e-006, 5.2e-006, \
622, 517, 1280, 1024, CamParam1)
gen_cam_par_area_scan_division (0.01, -731, 5.2e-006, 5.2e-006, \
654, 519, 1280, 1024, CamParam2)
create_pose (0.1535,-0.0037,0.0447,0.17,319.84,359.89, \
'Rp+T', 'gba', 'point', RelPose)
* Compute the mapping for rectified images.
gen_binocular_rectification_map (Map1, Map2, CamParam1, CamParam2, \
RelPose, 1, 'viewing_direction', \
'bilinear', CamParamRect1, CamParamRect2, \
Cam1PoseRect1, Cam2PoseRect2, RelPoseRect)
* Compute the distance values in online images.
while (1)
grab_image_async (Image1, AcqHandle1, -1)
map_image (Image1, Map1, ImageRect1)
grab_image_async (Image2, AcqHandle2, -1)
map_image (Image2, Map2, ImageRect2)
binocular_distance (ImageRect1, ImageRect2, Distance, Score, \
CamParamRect1, CamParamRect2, RelPoseRect, 'sad', \
11, 11, 20, -40, 20, 2, 25, \
'left_right_check', 'interpolation')
endwhile
Result
binocular_disparity binocular_disparity BinocularDisparity BinocularDisparity binocular_disparity
returns 2 (
H_MSG_TRUE )
if all parameter values
are correct. If necessary, an exception is raised.
Possible Predecessors
map_image map_image MapImage MapImage map_image
Possible Successors
threshold threshold Threshold Threshold threshold
Alternatives
binocular_distance_mg binocular_distance_mg BinocularDistanceMg BinocularDistanceMg binocular_distance_mg
,
binocular_distance_ms binocular_distance_ms BinocularDistanceMs BinocularDistanceMs binocular_distance_ms
,
binocular_disparity binocular_disparity BinocularDisparity BinocularDisparity binocular_disparity
,
binocular_disparity_mg binocular_disparity_mg BinocularDisparityMg BinocularDisparityMg binocular_disparity_mg
,
binocular_disparity_ms binocular_disparity_ms BinocularDisparityMs BinocularDisparityMs binocular_disparity_ms
See also
map_image map_image MapImage MapImage map_image
,
gen_binocular_rectification_map gen_binocular_rectification_map GenBinocularRectificationMap GenBinocularRectificationMap gen_binocular_rectification_map
,
binocular_calibration binocular_calibration BinocularCalibration BinocularCalibration binocular_calibration
,
distance_to_disparity distance_to_disparity DistanceToDisparity DistanceToDisparity distance_to_disparity
,
disparity_to_distance disparity_to_distance DisparityToDistance DisparityToDistance disparity_to_distance
,
disparity_image_to_xyz disparity_image_to_xyz DisparityImageToXyz DisparityImageToXyz disparity_image_to_xyz
Module
3D Metrology