Compute the fundamental matrix from an essential matrix.
The fundamental matrix is the entity describing the epipolar constraint in image coordinates (C,R) and the essential matrix is its counterpart for 3D direction vectors (X,Y,1):
T T
/ C2 \ / C1 \ / X2 \ / X1 \
| R2 | * FMatrix * | R1 | = 0 and | Y2 | * EMatrix * | Y1 | = 0 .
\ 1 / \ 1 / \ 1 / \ 1 /
Image coordinates result from 3D direction vectors by
multiplication with the camera matrix CamMat:
/ C \ / X \
| R | = CamMat * | Y | = 0 .
\ 1 / \ 1 /
Therefore, the fundamental matrix FMatrix is calculated from the
essential matrix EMatrix and the camera matrices CamMat1,
CamMat2 by the following formula:
-T -1
FMatrix = CamMat2 * EMatrix * CamMat1 .
The transformation of the essential matrix to the fundamental matrix
goes along with the propagation of the covariance matrices CovEMat
to CovFMat. If CovEMat is empty CovFMat will be
empty too.
The conversion operator essential_to_fundamental_matrix is used especially for a subsequent visualization of the epipolar line structure via the fundamental matrix, which depicts the underlying stereo geometry.
|
EMatrix (input_control) |
hom_mat2d-array -> real / integer |
| Essential matrix. | |
|
CovEMat (input_control) |
number-array -> real / integer |
| 9x9 covariance matrix of the essential matrix. | |
| Default value: '[]' | |
|
CamMat1 (input_control) |
hom_mat2d-array -> real / integer |
| Camera matrix of the 1. camera. | |
|
CamMat2 (input_control) |
hom_mat2d-array -> real / integer |
| Camera matrix of the 2. camera. | |
|
FMatrix (output_control) |
hom_mat2d-array -> real |
| Computed fundamental matrix. | |
|
CovFMat (output_control) |
real-array -> real |
| 9x9 covariance matrix of the fundamental matrix. | |
essential_to_fundamental_matrix is reentrant and processed without parallelization.
rel_pose_to_fundamental_matrix
3D Metrology