ClassesClassesClassesClasses | | | | Operators

rel_pose_to_fundamental_matrixT_rel_pose_to_fundamental_matrixRelPoseToFundamentalMatrixrel_pose_to_fundamental_matrixRelPoseToFundamentalMatrixRelPoseToFundamentalMatrix (Operator)


rel_pose_to_fundamental_matrixT_rel_pose_to_fundamental_matrixRelPoseToFundamentalMatrixrel_pose_to_fundamental_matrixRelPoseToFundamentalMatrixRelPoseToFundamentalMatrix — Compute the fundamental matrix from the relative orientation of two cameras.


rel_pose_to_fundamental_matrix( : : RelPose, CovRelPose, CamPar1, CamPar2 : FMatrix, CovFMat)

Herror T_rel_pose_to_fundamental_matrix(const Htuple RelPose, const Htuple CovRelPose, const Htuple CamPar1, const Htuple CamPar2, Htuple* FMatrix, Htuple* CovFMat)

Herror rel_pose_to_fundamental_matrix(const HTuple& RelPose, const HTuple& CovRelPose, const HTuple& CamPar1, const HTuple& CamPar2, HTuple* FMatrix, HTuple* CovFMat)

void RelPoseToFundamentalMatrix(const HTuple& RelPose, const HTuple& CovRelPose, const HTuple& CamPar1, const HTuple& CamPar2, HTuple* FMatrix, HTuple* CovFMat)

HHomMat2D HPose::RelPoseToFundamentalMatrix(const HTuple& CovRelPose, const HTuple& CamPar1, const HTuple& CamPar2, HTuple* CovFMat) const

HTuple HHomMat2D::RelPoseToFundamentalMatrix(const HPose& RelPose, const HTuple& CovRelPose, const HTuple& CamPar1, const HTuple& CamPar2)

void HOperatorSetX.RelPoseToFundamentalMatrix(
[in] VARIANT RelPose, [in] VARIANT CovRelPose, [in] VARIANT CamPar1, [in] VARIANT CamPar2, [out] VARIANT* FMatrix, [out] VARIANT* CovFMat)

IHHomMat2DX* HPoseX.RelPoseToFundamentalMatrix(
[in] VARIANT RelPose, [in] VARIANT CovRelPose, [in] VARIANT CamPar1, [in] VARIANT CamPar2, [out] VARIANT* CovFMat)

VARIANT HHomMat2DX.RelPoseToFundamentalMatrix(
[in] VARIANT RelPose, [in] VARIANT CovRelPose, [in] VARIANT CamPar1, [in] VARIANT CamPar2)

static void HOperatorSet.RelPoseToFundamentalMatrix(HTuple relPose, HTuple covRelPose, HTuple camPar1, HTuple camPar2, out HTuple FMatrix, out HTuple covFMat)

HHomMat2D HPose.RelPoseToFundamentalMatrix(HTuple covRelPose, HTuple camPar1, HTuple camPar2, out HTuple covFMat)

HTuple HHomMat2D.RelPoseToFundamentalMatrix(HPose relPose, HTuple covRelPose, HTuple camPar1, HTuple camPar2)


Cameras including lens distortions can be modeled by the following set of parameters: the focal length f, two scaling factors Sx,Sy, the coordinates of the principal point (Cx,Cy) and the distortion coefficient kappa. For a more detailed description see the operator calibrate_camerascalibrate_camerasCalibrateCamerascalibrate_camerasCalibrateCamerasCalibrateCameras. Only cameras with a distortion coefficient equal to zero project straight lines in the world onto straight lines in the image. Then, image projection is a linear mapping and the camera, i.e. the set of internal parameters, can be described by the camera matrix CamMat:

                  /  f/Sx     0  Cx \
       CamMat  =  |     0  f/Sy  Cy |  .
                  \     0     0   1 /

Going from a nonlinear model to a linear model is an approximation of the real underlying camera. For a variety of camera lenses, especially lenses with long focal length, the error induced by this approximation can be neglected. Following the formula E=([t]_x R)^T, the essential matrix E is derived from the translation t and the rotation R of the relative pose RelPoseRelPoseRelPoseRelPoseRelPoserelPose (see also operator vector_to_rel_posevector_to_rel_poseVectorToRelPosevector_to_rel_poseVectorToRelPoseVectorToRelPose). In the linearized framework the fundamental matrix can be calculated from the relative pose and the camera matrices according to the formula presented under essential_to_fundamental_matrixessential_to_fundamental_matrixEssentialToFundamentalMatrixessential_to_fundamental_matrixEssentialToFundamentalMatrixEssentialToFundamentalMatrix:

                        -T            T         -1
     FMatrix  =  CamMat2   * ([t]_x R) * CamMat1    .

The transformation from a relative pose to a fundamental matrix goes along with the propagation of the covariance matrices CovRelPoseCovRelPoseCovRelPoseCovRelPoseCovRelPosecovRelPose to CovFMatCovFMatCovFMatCovFMatCovFMatcovFMat. If CovRelPoseCovRelPoseCovRelPoseCovRelPoseCovRelPosecovRelPose is empty CovFMatCovFMatCovFMatCovFMatCovFMatcovFMat will be empty too.

The conversion operator rel_pose_to_fundamental_matrixrel_pose_to_fundamental_matrixRelPoseToFundamentalMatrixrel_pose_to_fundamental_matrixRelPoseToFundamentalMatrixRelPoseToFundamentalMatrix is used especially for a subsequent visualization of the epipolar line structure via the fundamental matrix, which depicts the underlying stereo geometry.



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

Relative orientation of the cameras (3D pose).

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

6x6 covariance matrix of relative pose.

Default value: []

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

Parameters of the 1. camera.

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

Parameters of the 2. camera.

FMatrixFMatrixFMatrixFMatrixFMatrixFMatrix (output_control)  hom_mat2d HHomMat2D, HTupleHTupleHTupleHHomMat2DX, VARIANTHtuple (real) (double) (double) (double) (double) (double)

Computed fundamental matrix.

CovFMatCovFMatCovFMatCovFMatCovFMatcovFMat (output_control)  real-array HTupleHTupleHTupleVARIANTHtuple (real) (double) (double) (double) (double) (double)

9x9 covariance matrix of the fundamental matrix.

Possible Predecessors




See also



3D Metrology

ClassesClassesClassesClasses | | | | Operators