Name
vector_to_proj_hom_mat2dT_vector_to_proj_hom_mat2dVectorToProjHomMat2dVectorToProjHomMat2d — Bestimmt eine projektive Transformationsmatrix unter Verwendung
vorgegebener Punktkorrespondenzen.
vector_to_proj_hom_mat2d( : : Px, Py, Qx, Qy, Method, CovXX1, CovYY1, CovXY1, CovXX2, CovYY2, CovXY2 : HomMat2D, Covariance)
Herror T_vector_to_proj_hom_mat2d(const Htuple Px, const Htuple Py, const Htuple Qx, const Htuple Qy, const Htuple Method, const Htuple CovXX1, const Htuple CovYY1, const Htuple CovXY1, const Htuple CovXX2, const Htuple CovYY2, const Htuple CovXY2, Htuple* HomMat2D, Htuple* Covariance)
void VectorToProjHomMat2d(const HTuple& Px, const HTuple& Py, const HTuple& Qx, const HTuple& Qy, const HTuple& Method, const HTuple& CovXX1, const HTuple& CovYY1, const HTuple& CovXY1, const HTuple& CovXX2, const HTuple& CovYY2, const HTuple& CovXY2, HTuple* HomMat2D, HTuple* Covariance)
HTuple HHomMat2D::VectorToProjHomMat2d(const HTuple& Px, const HTuple& Py, const HTuple& Qx, const HTuple& Qy, const HString& Method, const HTuple& CovXX1, const HTuple& CovYY1, const HTuple& CovXY1, const HTuple& CovXX2, const HTuple& CovYY2, const HTuple& CovXY2)
HTuple HHomMat2D::VectorToProjHomMat2d(const HTuple& Px, const HTuple& Py, const HTuple& Qx, const HTuple& Qy, const char* Method, const HTuple& CovXX1, const HTuple& CovYY1, const HTuple& CovXY1, const HTuple& CovXX2, const HTuple& CovYY2, const HTuple& CovXY2)
static void HOperatorSet.VectorToProjHomMat2d(HTuple px, HTuple py, HTuple qx, HTuple qy, HTuple method, HTuple covXX1, HTuple covYY1, HTuple covXY1, HTuple covXX2, HTuple covYY2, HTuple covXY2, out HTuple homMat2D, out HTuple covariance)
HTuple HHomMat2D.VectorToProjHomMat2d(HTuple px, HTuple py, HTuple qx, HTuple qy, string method, HTuple covXX1, HTuple covYY1, HTuple covXY1, HTuple covXX2, HTuple covYY2, HTuple covXY2)
vector_to_proj_hom_mat2dvector_to_proj_hom_mat2dVectorToProjHomMat2dVectorToProjHomMat2dVectorToProjHomMat2d ermittelt aus mindestens 4
vorgegebenen Punktkorrespondenzen
die homogene projektive Transformationsmatrix HomMat2DHomMat2DHomMat2DHomMat2DhomMat2D, die
die obigen Gleichungen am besten erfüllt. Sind weniger als 4
Punktpaare (PxPxPxPxpx,PyPyPyPypy), (QxQxQxQxqx,QyQyQyQyqy)
angegeben, so ist eine solche Transformation nicht eindeutig
bestimmbar. Sind genau 4 Punktpaare gegeben, so kann eine Matrix
gefunden werden, die die Punkte genau ineinander überführt.
Andernfalls wird die Matrix so gewählt, dass der Fehler möglichst
klein wird. Um dieses Ergebnis zu erreichen, sind verschiedene
Algorithmen verfügbar. Welches Verfahren verwendet werden soll,
kann mittels des Parameters MethodMethodMethodMethodmethod gesteuert werden.
MethodMethodMethodMethodmethod='dlt'"dlt""dlt""dlt""dlt" verwendet einen einfachen und
schnellen, dafür aber ungenaueren Fehlerschätzalgorithmus,
MethodMethodMethodMethodmethod='normalized_dlt'"normalized_dlt""normalized_dlt""normalized_dlt""normalized_dlt" bietet im allgemeinen
einen guten Kompromiss zwischen Geschwindigkeit und Genauigkeit,
während MethodMethodMethodMethodmethod='gold_standard'"gold_standard""gold_standard""gold_standard""gold_standard" eine mathematisch
optimale, dafür aber langsamere, Optimierung durchführt.
Falls 'gold_standard'"gold_standard""gold_standard""gold_standard""gold_standard" verwendet wird und die Punkte mit
einem Operator wie points_foerstnerpoints_foerstnerPointsFoerstnerPointsFoerstnerPointsFoerstner, der die Kovarianzmatrix
für jeden Punkt zurückliefert, extrahiert wurden, kann dies in der
Berechnung berücksichtigt werden, indem die Kovarianzen in
CovYY1CovYY1CovYY1CovYY1covYY1, CovXX1CovXX1CovXX1CovXX1covXX1, CovXY1CovXY1CovXY1CovXY1covXY1 für die Punkte
des ersten Bildes und in CovYY2CovYY2CovYY2CovYY2covYY2, CovXX2CovXX2CovXX2CovXX2covXX2,
CovXY2CovXY2CovXY2CovXY2covXY2 für die Punkte des zweiten Bildes übergeben
werden. Die Kovarianzmatrizen sind symmetrische 2×2
Matrizen. CovXX1CovXX1CovXX1CovXX1covXX1/CovXX2CovXX2CovXX2CovXX2covXX2 und
CovYY1CovYY1CovYY1CovYY1covYY1/CovYY2CovYY2CovYY2CovYY2covYY2 sind dabei die Diagonalelemente der
Matrizen, während CovXY1CovXY1CovXY1CovXY1covXY1/CovXY2CovXY2CovXY2CovXY2covXY2 die
Subdiagonalelemente angeben. Falls eine andere Methode als
'gold_standard'"gold_standard""gold_standard""gold_standard""gold_standard" verwendet wird oder die Kovarianzen
unbekannt sind, können in den Kovarianzparametern leere Tupel
übergeben werden.
Im Gegensatz zu hom_vector_to_proj_hom_mat2dhom_vector_to_proj_hom_mat2dHomVectorToProjHomMat2dHomVectorToProjHomMat2dHomVectorToProjHomMat2d können in
vector_to_proj_hom_mat2dvector_to_proj_hom_mat2dVectorToProjHomMat2dVectorToProjHomMat2dVectorToProjHomMat2d keine unendlich fernen Punkte zur
Bestimmung der Transformation verwendet werden. Falls dies
notwendig ist, muss hom_vector_to_proj_hom_mat2dhom_vector_to_proj_hom_mat2dHomVectorToProjHomMat2dHomVectorToProjHomMat2dHomVectorToProjHomMat2d verwendet
werden. Falls die Korrespondenz zwischen den Punkten nicht bestimmt
worden ist, sollte proj_match_points_ransacproj_match_points_ransacProjMatchPointsRansacProjMatchPointsRansacProjMatchPointsRansac zur Bestimmung
der Korrespondenz sowie der Transformation verwendet werden.
Falls die zu transformierenden Punkte in Standard-Bildkoordinaten
vorliegen, müssen die Zeilen-Koordinaten der Punkte in
PxPxPxPxpx und die Spalten-Koordinaten in PyPyPyPypy
übergeben werden. Dies ist notwendig, um für das Bild ein
rechtshändiges Koordinatensystem zu erhalten. Insbesondere werden
dadurch Rotationen im korrekten Drehsinn ausgeführt. Die
Koordinatenreihenfolge (x,y) der Matrizen entspricht dann der
üblichen Koordinatenreihenfolge (Zeile,Spalte) der Bilder.
Es ist zu beachten, dass homogene Transformationsmatrizen sich auf
ein allgemeines rechtshändiges mathematisches Koordinatensystem
beziehen. Falls eine homogene Transformationsmatrix zur
Transformation von Bildern, Regionen, XLD-Konturen oder anderen
Daten, die aus Bildern extrahiert wurden, verwendet werden soll, ist
zu beachten, dass die Zeilenkoordinaten in den x-Koordinaten und die
Spaltenkoordinaten in den y-Koordinaten übergeben werden müssen.
Die Übergabereihenfolge von Zeilen- und Spaltenkoordinaten
entspricht also der üblichen Reihenfolge
(RowRowRowRowrow,ColumnColumnColumnColumncolumn). Diese Konvention ist
unerlässlich, um bei der Transformation von Bilddaten ein
rechtshändiges Koordinatensystem zu erhalten, so dass
z.B. insbesondere Rotationen in der mathematisch korrekten
Drehrichtung ausgeführt werden.
Weiterhin ist zu beachten, dass, falls eine homogene
Transformationsmatrix zur Transformation von Bildern, Regionen,
XLD-Konturen oder anderen Daten, die aus Bildern extrahiert wurden,
verwendet werden soll, angenommen wird, dass der Ursprung des
Koordinatensystems der homogenen Transformationsmatrix in der linken
oberen Ecke des Pixels liegt. Die Bildverarbeitungsoperatoren, die
Punktkoordinaten zurückliefern, nehmen hingegen ein
Koordinatensystem an, in dem der Ursprung in der Mitte eines Pixels
liegt. Daher muss, um eine konsistente homogene
Transformationsmatrix zu erhalten, 0.5 zu den Punktkoordinaten
addiert werden, bevor die Transformation berechnet wird.
- Multithreading-Typ: reentrant (läuft parallel zu nicht-exklusiven Operatoren).
- Multithreading-Bereich: global (kann von jedem Thread aufgerufen werden).
- Wird ohne Parallelisierung verarbeitet.
PxPxPxPxpx (input_control) point.x-array → HTupleHTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Eingabepunkte in Bild 1 (Zeilenkoordinate).
PyPyPyPypy (input_control) point.y-array → HTupleHTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Eingabepunkte in Bild 1 (Spaltenkoordinate).
Eingabepunkte in Bild 2 (Zeilenkoordinate).
Eingabepunkte in Bild 2 (Spaltenkoordinate).
Schätzalgorithmus.
Defaultwert:
'normalized_dlt'
"normalized_dlt"
"normalized_dlt"
"normalized_dlt"
"normalized_dlt"
Werteliste: 'dlt'"dlt""dlt""dlt""dlt", 'gold_standard'"gold_standard""gold_standard""gold_standard""gold_standard", 'normalized_dlt'"normalized_dlt""normalized_dlt""normalized_dlt""normalized_dlt"
Varianz in Zeilenrichtung der Punkte in Bild 1.
Defaultwert: []
Varianz in Spaltenrichtung der Punkte in Bild 1.
Defaultwert: []
Kovarianz der Punkte in Bild 1.
Defaultwert: []
Varianz in Zeilenrichtung der Punkte in Bild 2.
Defaultwert: []
Varianz in Spaltenrichtung der Punkte in Bild 2.
Defaultwert: []
Kovarianz der Punkte in Bild 2.
Defaultwert: []
Homogene projektive Transformationsmatrix.
9×9 Kovarianzmatrix der
projektiven Transformationsmatrix.
proj_match_points_ransacproj_match_points_ransacProjMatchPointsRansacProjMatchPointsRansacProjMatchPointsRansac,
proj_match_points_ransac_guidedproj_match_points_ransac_guidedProjMatchPointsRansacGuidedProjMatchPointsRansacGuidedProjMatchPointsRansacGuided,
points_foerstnerpoints_foerstnerPointsFoerstnerPointsFoerstnerPointsFoerstner,
points_harrispoints_harrisPointsHarrisPointsHarrisPointsHarris
projective_trans_imageprojective_trans_imageProjectiveTransImageProjectiveTransImageProjectiveTransImage,
projective_trans_image_sizeprojective_trans_image_sizeProjectiveTransImageSizeProjectiveTransImageSizeProjectiveTransImageSize,
projective_trans_regionprojective_trans_regionProjectiveTransRegionProjectiveTransRegionProjectiveTransRegion,
projective_trans_contour_xldprojective_trans_contour_xldProjectiveTransContourXldProjectiveTransContourXldProjectiveTransContourXld,
projective_trans_point_2dprojective_trans_point_2dProjectiveTransPoint2dProjectiveTransPoint2dProjectiveTransPoint2d,
projective_trans_pixelprojective_trans_pixelProjectiveTransPixelProjectiveTransPixelProjectiveTransPixel
hom_vector_to_proj_hom_mat2dhom_vector_to_proj_hom_mat2dHomVectorToProjHomMat2dHomVectorToProjHomMat2dHomVectorToProjHomMat2d,
proj_match_points_ransacproj_match_points_ransacProjMatchPointsRansacProjMatchPointsRansacProjMatchPointsRansac,
proj_match_points_ransac_guidedproj_match_points_ransac_guidedProjMatchPointsRansacGuidedProjMatchPointsRansacGuidedProjMatchPointsRansacGuided
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.
Calibration