Name
project_hom_point_hom_mat3dT_project_hom_point_hom_mat3dProjectHomPointHomMat3dProjectHomPointHomMat3d — Projizieren eines homogenen 3D-Punktes mittels einer 3×4
Projektionsmatrix.
Herror T_project_hom_point_hom_mat3d(const Htuple HomMat3D, const Htuple Px, const Htuple Py, const Htuple Pz, const Htuple Pw, Htuple* Qx, Htuple* Qy, Htuple* Qw)
void ProjectHomPointHomMat3d(const HTuple& HomMat3D, const HTuple& Px, const HTuple& Py, const HTuple& Pz, const HTuple& Pw, HTuple* Qx, HTuple* Qy, HTuple* Qw)
HTuple HHomMat3D::ProjectHomPointHomMat3d(const HTuple& Px, const HTuple& Py, const HTuple& Pz, const HTuple& Pw, HTuple* Qy, HTuple* Qw) const
double HHomMat3D::ProjectHomPointHomMat3d(double Px, double Py, double Pz, double Pw, double* Qy, double* Qw) const
static void HOperatorSet.ProjectHomPointHomMat3d(HTuple homMat3D, HTuple px, HTuple py, HTuple pz, HTuple pw, out HTuple qx, out HTuple qy, out HTuple qw)
HTuple HHomMat3D.ProjectHomPointHomMat3d(HTuple px, HTuple py, HTuple pz, HTuple pw, out HTuple qy, out HTuple qw)
double HHomMat3D.ProjectHomPointHomMat3d(double px, double py, double pz, double pw, out double qy, out double qw)
project_point_hom_mat3dproject_point_hom_mat3dProjectPointHomMat3dProjectPointHomMat3dProjectPointHomMat3d wendet die 3×4 Projektionsmatrix
HomMat3DHomMat3DHomMat3DHomMat3DhomMat3D auf alle homogenen Eingabepunkte
(PxPxPxPxpx,PyPyPyPypy,PzPzPzPzpz,PwPwPwPwpw) an und liefert ein
Tupel von Ergebnispunkten (QxQxQxQxqx,QyQyQyQyqy,QwQwQwQwqw)
zurück. Die Transformation wird durch eine 3×4 Projektionsmatrix
beschrieben, die in HomMat3DHomMat3DHomMat3DHomMat3DhomMat3D übergeben wird. Dies
entspricht den folgenden Gleichungen (Ein- und Ausgabepunkte als
homogene Vektoren dargestellt):
Um die homogenen Koordinaten in euklidische Koordinaten zu
transformieren, muss durch QwQwQwQwqw geteilt werden:
Dies kann direkt mit project_point_hom_mat3dproject_point_hom_mat3dProjectPointHomMat3dProjectPointHomMat3dProjectPointHomMat3d erreicht
werden. Daher ist project_hom_point_hom_mat3dproject_hom_point_hom_mat3dProjectHomPointHomMat3dProjectHomPointHomMat3dProjectHomPointHomMat3d hauptsächlich
in Situationen nützlich, in denen die Ergebnispunkte auf der
unendlich fernen Geraden liegen können, d.h. QwQwQwQwqw = 0
besitzen können, und somit die obige Division nicht ausgeführt
werden kann.
Es ist zu beachten, dass, konsistent mit den Konventionen in
calibrate_camerascalibrate_camerasCalibrateCamerasCalibrateCamerasCalibrateCameras, QxQxQxQxqx der Spaltenkoordinate und
QyQyQyQyqy der Zeilenkoordinate in einem Bild entspricht.
- 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)
Eingabepunkt (x-Koordinate).
PyPyPyPypy (input_control) number(-array) → HTupleHTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Eingabepunkt (y-Koordinate).
PzPzPzPzpz (input_control) number(-array) → HTupleHTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Eingabepunkt (z-Koordinate).
PwPwPwPwpw (input_control) number(-array) → HTupleHTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Eingabepunkt (w-Koordinate).
Ausgabepunkt (x-Koordinate).
Ausgabepunkt (y-Koordinate).
Ausgabepunkt (w-Koordinate).
cam_par_pose_to_hom_mat3dcam_par_pose_to_hom_mat3dCamParPoseToHomMat3dCamParPoseToHomMat3dCamParPoseToHomMat3d
project_point_hom_mat3dproject_point_hom_mat3dProjectPointHomMat3dProjectPointHomMat3dProjectPointHomMat3d,
project_3d_pointproject_3d_pointProject3dPointProject3dPointProject3dPoint
Foundation