intersect_lines_of_sight T_intersect_lines_of_sight IntersectLinesOfSight IntersectLinesOfSight (Operator)
Name
intersect_lines_of_sight T_intersect_lines_of_sight IntersectLinesOfSight IntersectLinesOfSight
— Get a 3D point from the intersection of two lines of sight
within a binocular camera system.
Signature
Herror T_intersect_lines_of_sight (const Htuple CamParam1 , const Htuple CamParam2 , const Htuple RelPose , const Htuple Row1 , const Htuple Col1 , const Htuple Row2 , const Htuple Col2 , Htuple* X , Htuple* Y , Htuple* Z , Htuple* Dist )
void IntersectLinesOfSight (const HTuple& CamParam1 , const HTuple& CamParam2 , const HTuple& RelPose , const HTuple& Row1 , const HTuple& Col1 , const HTuple& Row2 , const HTuple& Col2 , HTuple* X , HTuple* Y , HTuple* Z , HTuple* Dist )
void HCamPar ::IntersectLinesOfSight (const HCamPar& CamParam2 , const HPose& RelPose , const HTuple& Row1 , const HTuple& Col1 , const HTuple& Row2 , const HTuple& Col2 , HTuple* X , HTuple* Y , HTuple* Z , HTuple* Dist ) const
void HCamPar ::IntersectLinesOfSight (const HCamPar& CamParam2 , const HPose& RelPose , double Row1 , double Col1 , double Row2 , double Col2 , double* X , double* Y , double* Z , double* Dist ) const
void HPose ::IntersectLinesOfSight (const HCamPar& CamParam1 , const HCamPar& CamParam2 , const HTuple& Row1 , const HTuple& Col1 , const HTuple& Row2 , const HTuple& Col2 , HTuple* X , HTuple* Y , HTuple* Z , HTuple* Dist ) const
void HPose ::IntersectLinesOfSight (const HCamPar& CamParam1 , const HCamPar& CamParam2 , double Row1 , double Col1 , double Row2 , double Col2 , double* X , double* Y , double* Z , double* Dist ) const
static void HOperatorSet .IntersectLinesOfSight (HTuple camParam1 , HTuple camParam2 , HTuple relPose , HTuple row1 , HTuple col1 , HTuple row2 , HTuple col2 , out HTuple x , out HTuple y , out HTuple z , out HTuple dist )
void HCamPar .IntersectLinesOfSight (HCamPar camParam2 , HPose relPose , HTuple row1 , HTuple col1 , HTuple row2 , HTuple col2 , out HTuple x , out HTuple y , out HTuple z , out HTuple dist )
void HCamPar .IntersectLinesOfSight (HCamPar camParam2 , HPose relPose , double row1 , double col1 , double row2 , double col2 , out double x , out double y , out double z , out double dist )
void HPose .IntersectLinesOfSight (HCamPar camParam1 , HCamPar camParam2 , HTuple row1 , HTuple col1 , HTuple row2 , HTuple col2 , out HTuple x , out HTuple y , out HTuple z , out HTuple dist )
void HPose .IntersectLinesOfSight (HCamPar camParam1 , HCamPar camParam2 , double row1 , double col1 , double row2 , double col2 , out double x , out double y , out double z , out double dist )
Description
Given two lines of sight from different cameras, specified by their
image points (Row1 Row1 Row1 Row1 row1
,Col1 Col1 Col1 Col1 col1
) of camera 1 and
(Row2 Row2 Row2 Row2 row2
,Col2 Col2 Col2 Col2 col2
) of camera 2,
intersect_lines_of_sight intersect_lines_of_sight IntersectLinesOfSight IntersectLinesOfSight IntersectLinesOfSight
computes the 3D
point of intersection of these lines. The binocular camera system is
specified by its internal camera parameters CamParam1 CamParam1 CamParam1 CamParam1 camParam1
of the
projective camera 1 and CamParam2 CamParam2 CamParam2 CamParam2 camParam2
of the projective camera 2, and
the external parameters RelPose RelPose RelPose RelPose relPose
.
Latter one is of the form
and characterizes the relative pose of both cameras to each other,
thus defining a point transformation
from camera coordinate system 2 (ccs2 ) into camera coordinate
system 1 (ccs1 ), see Transformations / Poses and
“Solution Guide III-C - 3D Vision”
.
These camera parameters can be obtained, e.g., from
the operator calibrate_cameras calibrate_cameras CalibrateCameras CalibrateCameras CalibrateCameras
, if the coordinates of the image
points (Row1 Row1 Row1 Row1 row1
,Col1 Col1 Col1 Col1 col1
) and (Row2 Row2 Row2 Row2 row2
,Col2 Col2 Col2 Col2 col2
)
refer to the respective original image coordinate system. In case of
rectified image coordinates ( e.g., obtained from rectified images),
the rectified camera parameters must be passed, as they are returned
by the operator
gen_binocular_rectification_map gen_binocular_rectification_map GenBinocularRectificationMap GenBinocularRectificationMap GenBinocularRectificationMap
. The 'point of
intersection' is defined by the point with the shortest distance to
both lines of sight. This point is returned in Cartesian coordinates
(X X X X x
,Y Y Y Y y
,Z Z Z Z z
) of camera system 1 and its
distance to the lines of sight is passed in Dist Dist Dist Dist dist
.
Attention
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).
Processed without parallelization.
Parameters
CamParam1 CamParam1 CamParam1 CamParam1 camParam1
(input_control) campar →
HCamPar , HTuple HTuple Htuple (real / integer / string) (double / int / long / string) (double / Hlong / HString) (double / Hlong / char*)
Internal parameters of the projective camera 1.
CamParam2 CamParam2 CamParam2 CamParam2 camParam2
(input_control) campar →
HCamPar , HTuple HTuple Htuple (real / integer / string) (double / int / long / string) (double / Hlong / HString) (double / Hlong / char*)
Internal parameters of the projective camera 2.
RelPose RelPose RelPose RelPose relPose
(input_control) pose →
HPose , HTuple HTuple Htuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Point transformation from camera 2 to camera 1.
Number of elements: 7
Row1 Row1 Row1 Row1 row1
(input_control) number(-array) →
HTuple HTuple Htuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Row coordinate of a point in image 1.
Col1 Col1 Col1 Col1 col1
(input_control) number(-array) →
HTuple HTuple Htuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Column coordinate of a point in image 1.
Row2 Row2 Row2 Row2 row2
(input_control) number(-array) →
HTuple HTuple Htuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Row coordinate of the corresponding point in image 2.
Col2 Col2 Col2 Col2 col2
(input_control) number(-array) →
HTuple HTuple Htuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Column coordinate of the corresponding point in image 2.
X X X X x
(output_control) real(-array) →
HTuple HTuple Htuple (real) (double ) (double ) (double )
X coordinate of the 3D point.
Y Y Y Y y
(output_control) real(-array) →
HTuple HTuple Htuple (real) (double ) (double ) (double )
Y coordinate of the 3D point.
Z Z Z Z z
(output_control) real(-array) →
HTuple HTuple Htuple (real) (double ) (double ) (double )
Z coordinate of the 3D point.
Dist Dist Dist Dist dist
(output_control) real(-array) →
HTuple HTuple Htuple (real) (double ) (double ) (double )
Distance of the 3D point to the lines of sight.
Result
intersect_lines_of_sight intersect_lines_of_sight IntersectLinesOfSight IntersectLinesOfSight IntersectLinesOfSight
returns 2 (H_MSG_TRUE) if all parameter values
are correct. If necessary, an exception is raised.
Possible Predecessors
binocular_calibration binocular_calibration BinocularCalibration BinocularCalibration BinocularCalibration
See also
disparity_to_point_3d disparity_to_point_3d DisparityToPoint3d DisparityToPoint3d DisparityToPoint3d
Module
3D Metrology