reconst3d_from_fundamental_matrixT_reconst3d_from_fundamental_matrixReconst3dFromFundamentalMatrixReconst3dFromFundamentalMatrix (Operator)

Name

reconst3d_from_fundamental_matrixT_reconst3d_from_fundamental_matrixReconst3dFromFundamentalMatrixReconst3dFromFundamentalMatrix — Compute the projective 3d reconstruction of points based on the fundamental matrix.

Signature

reconst3d_from_fundamental_matrix( : : Rows1, Cols1, Rows2, Cols2, CovRR1, CovRC1, CovCC1, CovRR2, CovRC2, CovCC2, FMatrix, CovFMat : X, Y, Z, W, CovXYZW)

Herror T_reconst3d_from_fundamental_matrix(const Htuple Rows1, const Htuple Cols1, const Htuple Rows2, const Htuple Cols2, const Htuple CovRR1, const Htuple CovRC1, const Htuple CovCC1, const Htuple CovRR2, const Htuple CovRC2, const Htuple CovCC2, const Htuple FMatrix, const Htuple CovFMat, Htuple* X, Htuple* Y, Htuple* Z, Htuple* W, Htuple* CovXYZW)

void Reconst3dFromFundamentalMatrix(const HTuple& Rows1, const HTuple& Cols1, const HTuple& Rows2, const HTuple& Cols2, const HTuple& CovRR1, const HTuple& CovRC1, const HTuple& CovCC1, const HTuple& CovRR2, const HTuple& CovRC2, const HTuple& CovCC2, const HTuple& FMatrix, const HTuple& CovFMat, HTuple* X, HTuple* Y, HTuple* Z, HTuple* W, HTuple* CovXYZW)

void HHomMat2D::Reconst3dFromFundamentalMatrix(const HTuple& Rows1, const HTuple& Cols1, const HTuple& Rows2, const HTuple& Cols2, const HTuple& CovRR1, const HTuple& CovRC1, const HTuple& CovCC1, const HTuple& CovRR2, const HTuple& CovRC2, const HTuple& CovCC2, const HTuple& CovFMat, HTuple* X, HTuple* Y, HTuple* Z, HTuple* W, HTuple* CovXYZW) const

void HHomMat2D::Reconst3dFromFundamentalMatrix(double Rows1, double Cols1, double Rows2, double Cols2, double CovRR1, double CovRC1, double CovCC1, double CovRR2, double CovRC2, double CovCC2, const HTuple& CovFMat, double* X, double* Y, double* Z, double* W, double* CovXYZW) const

static void HOperatorSet.Reconst3dFromFundamentalMatrix(HTuple rows1, HTuple cols1, HTuple rows2, HTuple cols2, HTuple covRR1, HTuple covRC1, HTuple covCC1, HTuple covRR2, HTuple covRC2, HTuple covCC2, HTuple FMatrix, HTuple covFMat, out HTuple x, out HTuple y, out HTuple z, out HTuple w, out HTuple covXYZW)

void HHomMat2D.Reconst3dFromFundamentalMatrix(HTuple rows1, HTuple cols1, HTuple rows2, HTuple cols2, HTuple covRR1, HTuple covRC1, HTuple covCC1, HTuple covRR2, HTuple covRC2, HTuple covCC2, HTuple covFMat, out HTuple x, out HTuple y, out HTuple z, out HTuple w, out HTuple covXYZW)

void HHomMat2D.Reconst3dFromFundamentalMatrix(double rows1, double cols1, double rows2, double cols2, double covRR1, double covRC1, double covCC1, double covRR2, double covRC2, double covCC2, HTuple covFMat, out double x, out double y, out double z, out double w, out double covXYZW)

Description

A pair of stereo images is called weakly calibrated if the fundamental matrix, which defines the geometric relation between the two images, is known. Given such a fundamental matrix FMatrixFMatrixFMatrixFMatrixFMatrix and a set of corresponding points (Rows1Rows1Rows1Rows1rows1,Cols1Cols1Cols1Cols1cols1) and (Rows2Rows2Rows2Rows2rows2,Cols2Cols2Cols2Cols2cols2) the operator reconst3d_from_fundamental_matrixreconst3d_from_fundamental_matrixReconst3dFromFundamentalMatrixReconst3dFromFundamentalMatrixReconst3dFromFundamentalMatrix determines the three-dimensional space points projecting onto these image points. This 3D reconstruction is purely projective and the projective coordinates are returned by the four-vector (XXXXx,YYYYy,ZZZZz,WWWWw). This type of reconstruction is also known as projective triangulation. If additionally the covariances CovRR1CovRR1CovRR1CovRR1covRR1, CovRC1CovRC1CovRC1CovRC1covRC1, CovCC1CovCC1CovCC1CovCC1covCC1 and CovRR2CovRR2CovRR2CovRR2covRR2, CovRC2CovRC2CovRC2CovRC2covRC2, CovCC2CovCC2CovCC2CovCC2covCC2 of the image points are given the covariances of the reconstructed points CovXYZWCovXYZWCovXYZWCovXYZWcovXYZW are computed too. Let n be the number of points. Then the concatenated covariances are stored in a 16xn tuple. The computation of the covariances is more precise if the covariance of the fundamental matrix CovFMatCovFMatCovFMatCovFMatcovFMat is provided.

The operator reconst3d_from_fundamental_matrixreconst3d_from_fundamental_matrixReconst3dFromFundamentalMatrixReconst3dFromFundamentalMatrixReconst3dFromFundamentalMatrix is typically used after match_fundamental_matrix_ransacmatch_fundamental_matrix_ransacMatchFundamentalMatrixRansacMatchFundamentalMatrixRansacMatchFundamentalMatrixRansac to perform 3d reconstruction. This will save computational cost compared with the deployment of vector_to_fundamental_matrixvector_to_fundamental_matrixVectorToFundamentalMatrixVectorToFundamentalMatrixVectorToFundamentalMatrix.

reconst3d_from_fundamental_matrixreconst3d_from_fundamental_matrixReconst3dFromFundamentalMatrixReconst3dFromFundamentalMatrixReconst3dFromFundamentalMatrix is the projective equivalent to the euclidian reconstruction operator intersect_lines_of_sightintersect_lines_of_sightIntersectLinesOfSightIntersectLinesOfSightIntersectLinesOfSight.

Execution Information

Parameters

Rows1Rows1Rows1Rows1rows1 (input_control)  number(-array) HTupleHTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)

Input points in image 1 (row coordinate).

Cols1Cols1Cols1Cols1cols1 (input_control)  number(-array) HTupleHTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)

Input points in image 1 (column coordinate).

Rows2Rows2Rows2Rows2rows2 (input_control)  number(-array) HTupleHTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)

Input points in image 2 (row coordinate).

Cols2Cols2Cols2Cols2cols2 (input_control)  number(-array) HTupleHTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)

Input points in image 2 (column coordinate).

CovRR1CovRR1CovRR1CovRR1covRR1 (input_control)  number(-array) HTupleHTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)

Row coordinate variance of the points in image 1.

Default value: []

CovRC1CovRC1CovRC1CovRC1covRC1 (input_control)  number(-array) HTupleHTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)

Covariance of the points in image 1.

Default value: []

CovCC1CovCC1CovCC1CovCC1covCC1 (input_control)  number(-array) HTupleHTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)

Column coordinate variance of the points in image 1.

Default value: []

CovRR2CovRR2CovRR2CovRR2covRR2 (input_control)  number(-array) HTupleHTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)

Row coordinate variance of the points in image 2.

Default value: []

CovRC2CovRC2CovRC2CovRC2covRC2 (input_control)  number(-array) HTupleHTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)

Covariance of the points in image 2.

Default value: []

CovCC2CovCC2CovCC2CovCC2covCC2 (input_control)  number(-array) HTupleHTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)

Column coordinate variance of the points in image 2.

Default value: []

FMatrixFMatrixFMatrixFMatrixFMatrix (input_control)  hom_mat2d HHomMat2D, HTupleHTupleHtuple (real) (double) (double) (double)

Fundamental matrix.

CovFMatCovFMatCovFMatCovFMatcovFMat (input_control)  real-array HTupleHTupleHtuple (real) (double) (double) (double)

9x9 covariance matrix of the fundamental matrix.

Default value: []

XXXXx (output_control)  real(-array) HTupleHTupleHtuple (real) (double) (double) (double)

X coordinates of the reconstructed points in projective 3D space.

YYYYy (output_control)  real(-array) HTupleHTupleHtuple (real) (double) (double) (double)

Y coordinates of the reconstructed points in projective 3D space.

ZZZZz (output_control)  real(-array) HTupleHTupleHtuple (real) (double) (double) (double)

Z coordinates of the reconstructed points in projective 3D space.

WWWWw (output_control)  real(-array) HTupleHTupleHtuple (real) (double) (double) (double)

W coordinates of the reconstructed points in projective 3D space.

CovXYZWCovXYZWCovXYZWCovXYZWcovXYZW (output_control)  real(-array) HTupleHTupleHtuple (real) (double) (double) (double)

Covariance matrices of the reconstructed points.

Possible Predecessors

match_fundamental_matrix_ransacmatch_fundamental_matrix_ransacMatchFundamentalMatrixRansacMatchFundamentalMatrixRansacMatchFundamentalMatrixRansac

Alternatives

vector_to_fundamental_matrixvector_to_fundamental_matrixVectorToFundamentalMatrixVectorToFundamentalMatrixVectorToFundamentalMatrix, intersect_lines_of_sightintersect_lines_of_sightIntersectLinesOfSightIntersectLinesOfSightIntersectLinesOfSight

References

Richard Hartley, Andrew Zisserman: “Multiple View Geometry in Computer Vision”; Cambridge University Press, Cambridge; 2000.

Module

3D Metrology