intersect_lines_of_sight T_intersect_lines_of_sight IntersectLinesOfSight IntersectLinesOfSight intersect_lines_of_sight (Operator)
Name
intersect_lines_of_sight T_intersect_lines_of_sight IntersectLinesOfSight IntersectLinesOfSight intersect_lines_of_sight
— 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 )
def intersect_lines_of_sight (cam_param_1 : Sequence[Union[int, float, str]], cam_param_2 : Sequence[Union[int, float, str]], rel_pose : Sequence[Union[int, float]], row_1 : MaybeSequence[Union[int, float]], col_1 : MaybeSequence[Union[int, float]], row_2 : MaybeSequence[Union[int, float]], col_2 : MaybeSequence[Union[int, float]]) -> Tuple[Sequence[float], Sequence[float], Sequence[float], Sequence[float]]
def intersect_lines_of_sight_s (cam_param_1 : Sequence[Union[int, float, str]], cam_param_2 : Sequence[Union[int, float, str]], rel_pose : Sequence[Union[int, float]], row_1 : MaybeSequence[Union[int, float]], col_1 : MaybeSequence[Union[int, float]], row_2 : MaybeSequence[Union[int, float]], col_2 : MaybeSequence[Union[int, float]]) -> Tuple[float, float, float, float]
Description
Given two lines of sight from different cameras, specified by their
image points (Row1 Row1 Row1 Row1 row1 row_1
,Col1 Col1 Col1 Col1 col1 col_1
) of camera 1 and
(Row2 Row2 Row2 Row2 row2 row_2
,Col2 Col2 Col2 Col2 col2 col_2
) of camera 2,
intersect_lines_of_sight intersect_lines_of_sight IntersectLinesOfSight IntersectLinesOfSight IntersectLinesOfSight intersect_lines_of_sight
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 cam_param_1
of the
projective camera 1 and CamParam2 CamParam2 CamParam2 CamParam2 camParam2 cam_param_2
of the projective camera 2, and
the external parameters RelPose RelPose RelPose RelPose relPose rel_pose
.
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 calibrate_cameras
, if the coordinates of the image
points (Row1 Row1 Row1 Row1 row1 row_1
,Col1 Col1 Col1 Col1 col1 col_1
) and (Row2 Row2 Row2 Row2 row2 row_2
,Col2 Col2 Col2 Col2 col2 col_2
)
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 gen_binocular_rectification_map
. 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 x
,Y Y Y Y y y
,Z 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 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 cam_param_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 parameters of the projective camera 1.
CamParam2 CamParam2 CamParam2 CamParam2 camParam2 cam_param_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 parameters of the projective camera 2.
RelPose RelPose RelPose RelPose relPose rel_pose
(input_control) pose →
HPose , HTuple Sequence[Union[int, float]] 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 row_1
(input_control) number(-array) →
HTuple MaybeSequence[Union[int, float]] HTuple Htuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Row coordinate of a point in image 1.
Col1 Col1 Col1 Col1 col1 col_1
(input_control) number(-array) →
HTuple MaybeSequence[Union[int, float]] HTuple Htuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Column coordinate of a point in image 1.
Row2 Row2 Row2 Row2 row2 row_2
(input_control) number(-array) →
HTuple MaybeSequence[Union[int, float]] 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 col_2
(input_control) number(-array) →
HTuple MaybeSequence[Union[int, float]] 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 x
(output_control) real(-array) →
HTuple Sequence[float] HTuple Htuple (real) (double ) (double ) (double )
X coordinate of the 3D point.
Y Y Y Y y y
(output_control) real(-array) →
HTuple Sequence[float] HTuple Htuple (real) (double ) (double ) (double )
Y coordinate of the 3D point.
Z Z Z Z z z
(output_control) real(-array) →
HTuple Sequence[float] HTuple Htuple (real) (double ) (double ) (double )
Z coordinate of the 3D point.
Dist Dist Dist Dist dist dist
(output_control) real(-array) →
HTuple Sequence[float] 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 intersect_lines_of_sight
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 binocular_calibration
See also
disparity_to_point_3d disparity_to_point_3d DisparityToPoint3d DisparityToPoint3d DisparityToPoint3d disparity_to_point_3d
Module
3D Metrology