Name
hom_vector_to_proj_hom_mat2dT_hom_vector_to_proj_hom_mat2dHomVectorToProjHomMat2dHomVectorToProjHomMat2d — Bestimmt eine projektive Transformationsmatrix unter Verwendung
vorgegebener Punktkorrespondenzen.
Herror T_hom_vector_to_proj_hom_mat2d(const Htuple Px, const Htuple Py, const Htuple Pw, const Htuple Qx, const Htuple Qy, const Htuple Qw, const Htuple Method, Htuple* HomMat2D)
void HomVectorToProjHomMat2d(const HTuple& Px, const HTuple& Py, const HTuple& Pw, const HTuple& Qx, const HTuple& Qy, const HTuple& Qw, const HTuple& Method, HTuple* HomMat2D)
void HHomMat2D::HomVectorToProjHomMat2d(const HTuple& Px, const HTuple& Py, const HTuple& Pw, const HTuple& Qx, const HTuple& Qy, const HTuple& Qw, const HString& Method)
void HHomMat2D::HomVectorToProjHomMat2d(const HTuple& Px, const HTuple& Py, const HTuple& Pw, const HTuple& Qx, const HTuple& Qy, const HTuple& Qw, const char* Method)
static void HOperatorSet.HomVectorToProjHomMat2d(HTuple px, HTuple py, HTuple pw, HTuple qx, HTuple qy, HTuple qw, HTuple method, out HTuple homMat2D)
void HHomMat2D.HomVectorToProjHomMat2d(HTuple px, HTuple py, HTuple pw, HTuple qx, HTuple qy, HTuple qw, string method)
hom_vector_to_proj_hom_mat2dhom_vector_to_proj_hom_mat2dHomVectorToProjHomMat2dHomVectorToProjHomMat2dHomVectorToProjHomMat2d ermittelt aus mindestens 4
vorgegebenen Punktkorrespondenzen
die homogene projektive Transformationsmatrix HomMat2DHomMat2DHomMat2DHomMat2DhomMat2D, die
diese Gleichungen am besten erfüllt. Sind weniger als 4 Punktpaare
(PxPxPxPxpx,PyPyPyPypy,PwPwPwPwpw),
(QxQxQxQxqx,QyQyQyQyqy,QwQwQwQwqw) 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. Für konventionelle geometrische
Transformationen liefert die Einstellung
MethodMethodMethodMethodmethod='normalized_dlt'"normalized_dlt""normalized_dlt""normalized_dlt""normalized_dlt" im allgemeinen die
besseren Ergebnisse. Ist aber eines der QwQwQwQwqw oder
PwPwPwPwpw gleich 0, so muss
MethodMethodMethodMethodmethod='dlt'"dlt""dlt""dlt""dlt" gewählt werden.
Im Gegensatz zu vector_to_proj_hom_mat2dvector_to_proj_hom_mat2dVectorToProjHomMat2dVectorToProjHomMat2dVectorToProjHomMat2d können aufgrund
der Verwendung von homogenen Koordinaten mit
hom_vector_to_proj_hom_mat2dhom_vector_to_proj_hom_mat2dHomVectorToProjHomMat2dHomVectorToProjHomMat2dHomVectorToProjHomMat2d unendlich ferne Punkte
(PwPwPwPwpw = 0 oder QwQwQwQwqw = 0) zur
Bestimmung der Transformation verwendet werden. Falls endliche
Punkte verwendet werden, wird im Normalfall PwPwPwPwpw =
1 und QwQwQwQwqw = 1 gewählt. In diesem Fall
kann auch vector_to_proj_hom_mat2dvector_to_proj_hom_mat2dVectorToProjHomMat2dVectorToProjHomMat2dVectorToProjHomMat2d verwendet werden, wobei
dort zusätzlich noch eine weitere Optimierungsmethode zur
Verfügung steht und die Kovarianzen der Punkte berücksichtigt
werden können. 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) number-array → HTupleHTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Eingabepunkte 1 (x-Koordinate).
PyPyPyPypy (input_control) number-array → HTupleHTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Eingabepunkte 1 (y-Koordinate).
PwPwPwPwpw (input_control) number-array → HTupleHTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Eingabepunkte 1 (w-Koordinate).
Eingabepunkte 2 (x-Koordinate).
Eingabepunkte 2 (y-Koordinate).
Eingabepunkte 2 (w-Koordinate).
Schätzalgorithmus.
Defaultwert:
'normalized_dlt'
"normalized_dlt"
"normalized_dlt"
"normalized_dlt"
"normalized_dlt"
Werteliste: 'dlt'"dlt""dlt""dlt""dlt", 'normalized_dlt'"normalized_dlt""normalized_dlt""normalized_dlt""normalized_dlt"
Homogene projektive 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
vector_to_proj_hom_mat2dvector_to_proj_hom_mat2dVectorToProjHomMat2dVectorToProjHomMat2dVectorToProjHomMat2d,
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