reconst3d_from_fundamental_matrixT_reconst3d_from_fundamental_matrixReconst3dFromFundamentalMatrixReconst3dFromFundamentalMatrix (Operator)
Name
reconst3d_from_fundamental_matrixT_reconst3d_from_fundamental_matrixReconst3dFromFundamentalMatrixReconst3dFromFundamentalMatrix
— Berechnung der projektiven 3D Rekonstruktion von Punkten für eine gegebene
Fundamental-Matrix.
Signatur
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)
Beschreibung
Ein Bildpaar wird schwach kalibriert genannt, wenn die Fundamental-Matrix
bekannt ist. Sei eine solche Fundamental-Matrix FMatrixFMatrixFMatrixFMatrixFMatrix
und eine
Menge von korrespondierenden Punkten (Rows1Rows1Rows1Rows1rows1
,Cols1Cols1Cols1Cols1cols1
) und
(Rows2Rows2Rows2Rows2rows2
,Cols2Cols2Cols2Cols2cols2
) gegeben, so bestimmt der Operator
reconst3d_from_fundamental_matrixreconst3d_from_fundamental_matrixReconst3dFromFundamentalMatrixReconst3dFromFundamentalMatrixReconst3dFromFundamentalMatrix
die Raumpunkte, welche auf
die entsprechenden Bildpunkte abgebildet werden. Diese dreidimensionale
Rekonstruktion ist rein projektiv, und die projektiven Koordinaten werden
in dem Vektor (XXXXx
,YYYYy
,ZZZZz
,WWWWw
)
zurückgegeben. Diese Art der Rekonstuktion wird auch projektive
Triangulation genannt.
Sind zusätzlich die Kovarianzen CovRR1CovRR1CovRR1CovRR1covRR1
, CovRC1CovRC1CovRC1CovRC1covRC1
,
CovCC1CovCC1CovCC1CovCC1covCC1
und CovRR2CovRR2CovRR2CovRR2covRR2
, CovRC2CovRC2CovRC2CovRC2covRC2
, CovCC2CovCC2CovCC2CovCC2covCC2
der Bildpunkte bekannt, so werden auch die Kovarianzen CovXYZWCovXYZWCovXYZWCovXYZWcovXYZW
der rekonstruierten Punkte berechnet.
Ist n die Anzahl der Korrespondenzen, so
werden die Kovarianzen in einem 9xn langen Tupel
aneinandergehängt. Die Berechnung der Kovarianzen wird noch genauer,
wenn weiterhin die Kovarianz der Fundamental-Matrix CovFMatCovFMatCovFMatCovFMatcovFMat
als
Eingabe zu Verfügung steht.
Der Operator reconst3d_from_fundamental_matrixreconst3d_from_fundamental_matrixReconst3dFromFundamentalMatrixReconst3dFromFundamentalMatrixReconst3dFromFundamentalMatrix
wird typischerweise
nach match_fundamental_matrix_ransacmatch_fundamental_matrix_ransacMatchFundamentalMatrixRansacMatchFundamentalMatrixRansacMatchFundamentalMatrixRansac
aufgerufen, wenn eine 3D
Rekonstruktion gewünscht ist. Dies spart Rechenzeit gegenüber der Verwendung
des Operators vector_to_fundamental_matrixvector_to_fundamental_matrixVectorToFundamentalMatrixVectorToFundamentalMatrixVectorToFundamentalMatrix
.
reconst3d_from_fundamental_matrixreconst3d_from_fundamental_matrixReconst3dFromFundamentalMatrixReconst3dFromFundamentalMatrixReconst3dFromFundamentalMatrix
ist das projektive Pendant zur
euklidischen Rekonstruktion mittels des Operators
intersect_lines_of_sightintersect_lines_of_sightIntersectLinesOfSightIntersectLinesOfSightIntersectLinesOfSight
.
Ausführungsinformationen
- Multithreading-Typ: reentrant (läuft parallel zu nicht-exklusiven Operatoren).
- Multithreading-Bereich: global (kann von jedem Thread aufgerufen werden).
- Wird ohne Parallelisierung verarbeitet.
Parameter
Rows1Rows1Rows1Rows1rows1
(input_control) number(-array) →
HTupleHTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Eingabepunkte in Bild 1 (Zeilenkoordinate).
Cols1Cols1Cols1Cols1cols1
(input_control) number(-array) →
HTupleHTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Eingabepunkte in Bild 1 (Spaltenkoordinate).
Rows2Rows2Rows2Rows2rows2
(input_control) number(-array) →
HTupleHTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Eingabepunkte in Bild 2 (Zeilenkoordinate).
Cols2Cols2Cols2Cols2cols2
(input_control) number(-array) →
HTupleHTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Eingabepunkte in Bild 2 (Spaltenkoordinate).
CovRR1CovRR1CovRR1CovRR1covRR1
(input_control) number(-array) →
HTupleHTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Varianz in Zeilenrichtung der Punkte in Bild 1.
Defaultwert: []
CovRC1CovRC1CovRC1CovRC1covRC1
(input_control) number(-array) →
HTupleHTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Kovarianz der Punkte in Bild 1.
Defaultwert: []
CovCC1CovCC1CovCC1CovCC1covCC1
(input_control) number(-array) →
HTupleHTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Varianz in Spaltenrichtung der Punkte in Bild 1.
Defaultwert: []
CovRR2CovRR2CovRR2CovRR2covRR2
(input_control) number(-array) →
HTupleHTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Varianz in Zeilenrichtung der Punkte in Bild 2.
Defaultwert: []
CovRC2CovRC2CovRC2CovRC2covRC2
(input_control) number(-array) →
HTupleHTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Kovarianz der Punkte in Bild 2.
Defaultwert: []
CovCC2CovCC2CovCC2CovCC2covCC2
(input_control) number(-array) →
HTupleHTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Varianz in Spaltenrichtung der Punkte in Bild 2.
Defaultwert: []
FMatrixFMatrixFMatrixFMatrixFMatrix
(input_control) hom_mat2d →
HHomMat2D, HTupleHTupleHtuple (real) (double) (double) (double)
Fundamental-Matrix.
CovFMatCovFMatCovFMatCovFMatcovFMat
(input_control) real-array →
HTupleHTupleHtuple (real) (double) (double) (double)
9x9 Kovarianzmatrix der
Fundamental-Matrix.
Defaultwert: []
XXXXx
(output_control) real(-array) →
HTupleHTupleHtuple (real) (double) (double) (double)
X-Koordinaten der rekonstruierten Punkte
im projektiven Raum.
YYYYy
(output_control) real(-array) →
HTupleHTupleHtuple (real) (double) (double) (double)
Y-Koordinaten der rekonstruierten Punkte
im projektiven Raum.
ZZZZz
(output_control) real(-array) →
HTupleHTupleHtuple (real) (double) (double) (double)
Z-Koordinaten der rekonstruierten Punkte
im projektiven Raum.
WWWWw
(output_control) real(-array) →
HTupleHTupleHtuple (real) (double) (double) (double)
W-Koordinaten der rekonstruierten Punkte
im projektiven Raum.
CovXYZWCovXYZWCovXYZWCovXYZWcovXYZW
(output_control) real(-array) →
HTupleHTupleHtuple (real) (double) (double) (double)
Kovarianzmatrizen der rekonstruierten Punkte.
Vorgänger
match_fundamental_matrix_ransacmatch_fundamental_matrix_ransacMatchFundamentalMatrixRansacMatchFundamentalMatrixRansacMatchFundamentalMatrixRansac
Alternativen
vector_to_fundamental_matrixvector_to_fundamental_matrixVectorToFundamentalMatrixVectorToFundamentalMatrixVectorToFundamentalMatrix
,
intersect_lines_of_sightintersect_lines_of_sightIntersectLinesOfSightIntersectLinesOfSightIntersectLinesOfSight
Literatur
Richard Hartley, Andrew Zisserman: „Multiple View Geometry in
Computer Vision“; Cambridge University Press, Cambridge; 2000.
Modul
3D Metrology