vector_to_fundamental_matrixT_vector_to_fundamental_matrixVectorToFundamentalMatrixVectorToFundamentalMatrix — Compute the fundamental matrix given a set of image point
correspondences and reconstruct 3D points.
Note the column/row ordering in the point coordinates: since the fundamental
matrix encodes the projective relation between two stereo images embedded
in 3D space, the x/y notation must be compliant with the camera coordinate
system. Therefore, (x,y) coordinates correspond to (column,row) pairs.
For a general relative orientation of the two cameras the minimum number of
required point correspondences is eight. Then, MethodMethodMethodMethodmethod is chosen
to be 'normalized_dlt'"normalized_dlt""normalized_dlt""normalized_dlt""normalized_dlt" or 'gold_standard'"gold_standard""gold_standard""gold_standard""gold_standard".
If left and right camera are identical and the relative orientation between
them is a pure translation then choose MethodMethodMethodMethodmethod equal to
'trans_normalized_dlt'"trans_normalized_dlt""trans_normalized_dlt""trans_normalized_dlt""trans_normalized_dlt" or 'trans_gold_standard'"trans_gold_standard""trans_gold_standard""trans_gold_standard""trans_gold_standard".
In this special case the minimum number of correspondences is only two.
The typical application of the motion beeing a pure translation is that of a
single fixed camera looking onto a moving conveyor belt.
The fundamental matrix is determined by minimizing a cost function.
To minimize the respective error different algorithms are available, and
the user can choose between the direct-linear-transformation
('normalized_dlt') and the gold-standard-algorithm ('gold_standard').
Like the motion case,
the algorithm can be selected with the parameter MethodMethodMethodMethodmethod.
For MethodMethodMethodMethodmethod = 'normalized_dlt'"normalized_dlt""normalized_dlt""normalized_dlt""normalized_dlt" or
'trans_normalized_dlt'"trans_normalized_dlt""trans_normalized_dlt""trans_normalized_dlt""trans_normalized_dlt", a linear algorithm minimizes an algebraic
error based on the above epipolar constraint.
This algorithm offers a good compromise between speed
and accuracy.
For MethodMethodMethodMethodmethod = 'gold_standard'"gold_standard""gold_standard""gold_standard""gold_standard" or
'trans_gold_standard'"trans_gold_standard""trans_gold_standard""trans_gold_standard""trans_gold_standard",
a mathematically optimal, but slower optimization is used, which
minimizes the geometric backprojection error of reconstructed
projective 3D points. In this case, in addition to the fundamental
matrix its
covariance matrix CovFMatCovFMatCovFMatCovFMatcovFMat is output, along with the projective
coordinates (XXXXx,YYYYy,ZZZZz,WWWWw) of the
reconstructed
points and their covariances CovXYZWCovXYZWCovXYZWCovXYZWcovXYZW.
Let n be the number of points. Then the concatenated
covariances are stored in a 16xn tuple.
The value ErrorErrorErrorErrorerror indicates the overall quality of the optimization
procedure and is the mean euclidian distance in pixels between the
points and their corresponding epipolar lines.
List of values: 'gold_standard'"gold_standard""gold_standard""gold_standard""gold_standard", 'normalized_dlt'"normalized_dlt""normalized_dlt""normalized_dlt""normalized_dlt", 'trans_gold_standard'"trans_gold_standard""trans_gold_standard""trans_gold_standard""trans_gold_standard", 'trans_normalized_dlt'"trans_normalized_dlt""trans_normalized_dlt""trans_normalized_dlt""trans_normalized_dlt"
Richard Hartley, Andrew Zisserman: “Multiple View Geometry in
Computer Vision”; Cambridge University Press, Cambridge; 2000.
Olivier Faugeras, Quang-Tuan Luong: “The Geometry of Multiple
Images: The Laws That Govern the Formation of Multiple Images of a
Scene and Some of Their Applications”; MIT Press, Cambridge, MA;
2001.