Name
vector_to_poseT_vector_to_poseVectorToPosevector_to_poseVectorToPoseVectorToPose — Berechnen einer absoluten Pose aus Punktkorrespondenzen von Welt-
zu Bildkoordinaten.
void VectorToPose(const HTuple& WorldX, const HTuple& WorldY, const HTuple& WorldZ, const HTuple& ImageRow, const HTuple& ImageColumn, const HTuple& CameraParam, const HTuple& Method, const HTuple& QualityType, HTuple* Pose, HTuple* Quality)
static HPose HImage::VectorToPose(const HTuple& WorldX, const HTuple& WorldY, const HTuple& WorldZ, const HTuple& ImageRow, const HTuple& ImageColumn, const HTuple& CameraParam, const HString& Method, const HTuple& QualityType, HTuple* Quality)
static HPose HImage::VectorToPose(const HTuple& WorldX, const HTuple& WorldY, const HTuple& WorldZ, const HTuple& ImageRow, const HTuple& ImageColumn, const HTuple& CameraParam, const HString& Method, const HString& QualityType, double* Quality)
static HPose HImage::VectorToPose(const HTuple& WorldX, const HTuple& WorldY, const HTuple& WorldZ, const HTuple& ImageRow, const HTuple& ImageColumn, const HTuple& CameraParam, const char* Method, const char* QualityType, double* Quality)
void HOperatorSetX.VectorToPose(
[in] VARIANT WorldX, [in] VARIANT WorldY, [in] VARIANT WorldZ, [in] VARIANT ImageRow, [in] VARIANT ImageColumn, [in] VARIANT CameraParam, [in] VARIANT Method, [in] VARIANT QualityType, [out] VARIANT* Pose, [out] VARIANT* Quality)
VARIANT HImageX.VectorToPose(
[in] VARIANT WorldX, [in] VARIANT WorldY, [in] VARIANT WorldZ, [in] VARIANT ImageRow, [in] VARIANT ImageColumn, [in] VARIANT CameraParam, [in] BSTR Method, [in] VARIANT QualityType, [out] VARIANT* Quality)
static void HOperatorSet.VectorToPose(HTuple worldX, HTuple worldY, HTuple worldZ, HTuple imageRow, HTuple imageColumn, HTuple cameraParam, HTuple method, HTuple qualityType, out HTuple pose, out HTuple quality)
static HPose HImage.VectorToPose(HTuple worldX, HTuple worldY, HTuple worldZ, HTuple imageRow, HTuple imageColumn, HTuple cameraParam, string method, HTuple qualityType, out HTuple quality)
static HPose HImage.VectorToPose(HTuple worldX, HTuple worldY, HTuple worldZ, HTuple imageRow, HTuple imageColumn, HTuple cameraParam, string method, string qualityType, out double quality)
Der Operator vector_to_posevector_to_poseVectorToPosevector_to_poseVectorToPoseVectorToPose berechnet eine Pose aus
mindestens vier Punktkorrespondenzen von 3D-Weltkoordinaten [m]
(WorldXWorldXWorldXWorldXWorldXworldX, WorldYWorldYWorldYWorldYWorldYworldY, WorldZWorldZWorldZWorldZWorldZworldZ) und
2D-Bildkoordinaten (ImageRowImageRowImageRowImageRowImageRowimageRow, ImageColumnImageColumnImageColumnImageColumnImageColumnimageColumn). Dazu wird
bei allen Bildkoordinaten zunächst deren radiale Verzeichnung
entfernt. Je nach Wahl des Parameters MethodMethodMethodMethodMethodmethod kann gewählt
werden, welcher Algorithmus anschließend für die Berechnung der Pose
verwendet werden soll. Im Augenblick werden eine analytische
('analytic'"analytic""analytic""analytic""analytic""analytic") sowie eine iterative ('iterative'"iterative""iterative""iterative""iterative""iterative")
Lösung des Problems unterstützt. Im Fall eines planaren Objekts
(WorldZWorldZWorldZWorldZWorldZworldZ = 0) kann außerdem die Methode
'planar_analytic'"planar_analytic""planar_analytic""planar_analytic""planar_analytic""planar_analytic" gewählt werden. Die z-Komponente der
Weltpunkte muss dann nicht gesetzt (WorldZWorldZWorldZWorldZWorldZworldZ = [])
werden, da nur 2D-Korrespondenzen verwendet werden.
Im allgemeinen liefert die analytische Methode (MethodMethodMethodMethodMethodmethod =
'analytic'"analytic""analytic""analytic""analytic""analytic") die robustesten Ergebnisse. Lediglich wenn nur
vier Punkte verwendet werden oder wenn die Weltpunkte näherungsweise
in einer Ebene liegen, liefert die iterative Methode
(MethodMethodMethodMethodMethodmethod = 'iterative'"iterative""iterative""iterative""iterative""iterative") geringfügig robustere
Ergebnisse. Für Weltpunkte, die exakt in einer Ebene liegen, ist
die Methode 'planar_analytic'"planar_analytic""planar_analytic""planar_analytic""planar_analytic""planar_analytic" zu verwenden.
Die Ergebnisse aller Algorithmen werden intern durch die in
camera_calibrationcamera_calibrationCameraCalibrationcamera_calibrationCameraCalibrationCameraCalibration verwendete Methodik verbessert, bei der
der geometrische Fehler der Überbestimmung minimiert wird. Zur
Lösung des Problems benötigen alle Algorithmen die internen
Kameraparameter aus der Kamerakalibrierung, die in
CameraParamCameraParamCameraParamCameraParamCameraParamcameraParam übergeben werden.
Zusätzlich kann der Benutzer durch QualityTypeQualityTypeQualityTypeQualityTypeQualityTypequalityType eine oder
mehrere Qualitätsmaß-Bewertungen der Pose bestimmen, die
mitberechnet werden. Die resultierenden Qualitätsmaße werden in
QualityQualityQualityQualityQualityquality aneinandergehängt zurückgeliefert. Derzeit wird nur
'error'"error""error""error""error""error" unterstützt. Es entspricht dem Mittelwert der
Pixeldistanz, welche auch von camera_calibrationcamera_calibrationCameraCalibrationcamera_calibrationCameraCalibrationCameraCalibration
zurückgeliefert wird.
- Multithreading-Typ: reentrant (läuft parallel zu nicht-exklusiven Operatoren).
- Multithreading-Bereich: global (kann von jedem Thread aufgerufen werden).
- Wird ohne Parallelisierung verarbeitet.
X-Koordinaten der Weltpunkte.
Parameteranzahl: WorldX >= 4
Y-Koordinaten der Weltpunkte.
Parameteranzahl: WorldY == WorldX
Z-Koordinaten der Weltpunkte.
Parameteranzahl: WorldZ == WorldX || WorldZ == 0
Zeilen-Koordinaten der Bildpunkte.
Parameteranzahl: ImageRow == WorldX
Spalten-Koordinaten der Bildpunkte.
Parameteranzahl: ImageColumn == WorldX
Die internen Kameraparameter aus der Kamerakalibrierung.
Parameteranzahl: CameraParam == 8 || CameraParam == 10 || CameraParam == 12 || CameraParam == 14
Art des Algorithmus
Defaultwert:
'iterative'
"iterative"
"iterative"
"iterative"
"iterative"
"iterative"
Werteliste: 'analytic'"analytic""analytic""analytic""analytic""analytic", 'iterative'"iterative""iterative""iterative""iterative""iterative", 'planar_analytic'"planar_analytic""planar_analytic""planar_analytic""planar_analytic""planar_analytic"
Art des mit Quality zurückgegebenen Qualitätsmaßes.
Defaultwert:
'error'
"error"
"error"
"error"
"error"
"error"
Werteliste: 'error'"error""error""error""error""error"
Sind die Parameterwerte korrekt, dann liefert vector_to_posevector_to_poseVectorToPosevector_to_poseVectorToPoseVectorToPose
den Wert 2 (H_MSG_TRUE).
proj_hom_mat2d_to_poseproj_hom_mat2d_to_poseProjHomMat2dToPoseproj_hom_mat2d_to_poseProjHomMat2dToPoseProjHomMat2dToPose,
vector_to_rel_posevector_to_rel_poseVectorToRelPosevector_to_rel_poseVectorToRelPoseVectorToRelPose,
camera_calibrationcamera_calibrationCameraCalibrationcamera_calibrationCameraCalibrationCameraCalibration
Calibration