Name
vector_to_pose T_vector_to_pose VectorToPose VectorToPose — 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 HCamPar& 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 HCamPar& 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 HCamPar& CameraParam , const char* Method , const char* QualityType , double* Quality )
HPose HCamPar ::VectorToPose (const HTuple& WorldX , const HTuple& WorldY , const HTuple& WorldZ , const HTuple& ImageRow , const HTuple& ImageColumn , const HString& Method , const HTuple& QualityType , HTuple* Quality ) const
HPose HCamPar ::VectorToPose (const HTuple& WorldX , const HTuple& WorldY , const HTuple& WorldZ , const HTuple& ImageRow , const HTuple& ImageColumn , const HString& Method , const HString& QualityType , double* Quality ) const
HPose HCamPar ::VectorToPose (const HTuple& WorldX , const HTuple& WorldY , const HTuple& WorldZ , const HTuple& ImageRow , const HTuple& ImageColumn , const char* Method , const char* QualityType , double* Quality ) const
HTuple HPose ::VectorToPose (const HTuple& WorldX , const HTuple& WorldY , const HTuple& WorldZ , const HTuple& ImageRow , const HTuple& ImageColumn , const HCamPar& CameraParam , const HString& Method , const HTuple& QualityType )
double HPose ::VectorToPose (const HTuple& WorldX , const HTuple& WorldY , const HTuple& WorldZ , const HTuple& ImageRow , const HTuple& ImageColumn , const HCamPar& CameraParam , const HString& Method , const HString& QualityType )
double HPose ::VectorToPose (const HTuple& WorldX , const HTuple& WorldY , const HTuple& WorldZ , const HTuple& ImageRow , const HTuple& ImageColumn , const HCamPar& CameraParam , const char* Method , const char* QualityType )
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 , HCamPar cameraParam , string method , HTuple qualityType , out HTuple quality )
static HPose HImage .VectorToPose (HTuple worldX , HTuple worldY , HTuple worldZ , HTuple imageRow , HTuple imageColumn , HCamPar cameraParam , string method , string qualityType , out double quality )
HPose HCamPar .VectorToPose (HTuple worldX , HTuple worldY , HTuple worldZ , HTuple imageRow , HTuple imageColumn , string method , HTuple qualityType , out HTuple quality )
HPose HCamPar .VectorToPose (HTuple worldX , HTuple worldY , HTuple worldZ , HTuple imageRow , HTuple imageColumn , string method , string qualityType , out double quality )
HTuple HPose .VectorToPose (HTuple worldX , HTuple worldY , HTuple worldZ , HTuple imageRow , HTuple imageColumn , HCamPar cameraParam , string method , HTuple qualityType )
double HPose .VectorToPose (HTuple worldX , HTuple worldY , HTuple worldZ , HTuple imageRow , HTuple imageColumn , HCamPar cameraParam , string method , string qualityType )
Der Operator vector_to_pose vector_to_pose VectorToPose VectorToPose VectorToPose berechnet eine Pose aus
mindestens drei oder vier (abhängig von Method Method Method Method method )
Punktkorrespondenzen von 3D-Weltkoordinaten (WorldX WorldX WorldX WorldX worldX ,
WorldY WorldY WorldY WorldY worldY , WorldZ WorldZ WorldZ WorldZ worldZ ), gegeben in Metern, und
2D-Bildkoordinaten (ImageRow ImageRow ImageRow ImageRow imageRow , ImageColumn ImageColumn ImageColumn ImageColumn imageColumn ),
gegeben in Pixeln.
Parameter Method
Je nach Wahl des Parameters Method Method Method Method method kann gewählt werden,
welcher Algorithmus für die Berechnung der Pose verwendet werden
soll.
Methoden, die für Lochkameras unterstützt werden:
Method Method Method Method method
Wann verwenden
Minimale Anzahl von Punktkorrespondenzen
'analytic' "analytic" "analytic" "analytic" "analytic"
Standardmethode für allgemeine Verwendung
4
'iterative' "iterative" "iterative" "iterative" "iterative"
Falls nur drei oder vier Punktkorrespondenzen
verwendet werden oder falls die Weltpunkte fast planar sind
3
'planar_analytic' "planar_analytic" "planar_analytic" "planar_analytic" "planar_analytic"
Falls die Weltpunkte in einer
horizontalen Ebene liegen (
)
4
Methoden, die für telezentrische Kameras unterstützt
werden:
Method Method Method Method method
Wann verwenden
Minimale Anzahl von Punktkorrespondenzen
'telecentric' "telecentric" "telecentric" "telecentric" "telecentric"
Standardmethode für allgemeine Verwendung
4
'telecentric_robust' "telecentric_robust" "telecentric_robust" "telecentric_robust" "telecentric_robust"
Für sehr schlecht gestellte
Punktkonfigurationen, falls Quality Quality Quality Quality quality einen unerwartet hohen
Wert besitzt
4
'telecentric_planar' "telecentric_planar" "telecentric_planar" "telecentric_planar" "telecentric_planar"
Falls die Weltpunkte in einer
horizontalen Ebene liegen (
)
3
'telecentric_planar_robust' "telecentric_planar_robust" "telecentric_planar_robust" "telecentric_planar_robust" "telecentric_planar_robust"
Für sehr schlecht gestellte
Punktkonfigurationen, in denen die Weltpunkte in einer horizontalen
Ebene liegen (
) und
für die Quality Quality Quality Quality quality einen unerwartet hohen Wert besitzt
3
Parameter CameraParam und Quality
Zur Lösung des Problems benötigen alle Algorithmen die internen
Kameraparameter aus der Kamerakalibrierung, die in
CameraParam CameraParam CameraParam CameraParam cameraParam übergeben werden.
Zusätzlich kann der Benutzer durch QualityType QualityType QualityType QualityType qualityType eine oder
mehrere Qualitätsmaß-Bewertungen der Pose bestimmen, die
mitberechnet werden. Die resultierenden Qualitätsmaße werden in
Quality Quality Quality Quality quality aneinandergehängt zurückgeliefert. Derzeit wird nur
'error' "error" "error" "error" "error" unterstützt. Es entspricht dem quadratischen
Mittelwert der Fehler in Pixeln der projizierten
3D-Weltkoordinaten.
Allgemeine Anmerkungen
Falls eine Methode für planare Weltpunkte gewählt wird, wird
angenommen, dass alle Weltpunkte in der Ebene
liegen. Daher muss für planare Weltpunkte
die z-Komponente der Weltpunkte nicht gesetzt werden
(WorldZ WorldZ WorldZ WorldZ worldZ = [] ), da nur 2D-Korrespondenzen verwendet
werden.
Für telezentrische Kameras kann offensichtlicherweise die
Translation in z -Richtung nicht bestimmt werden. Sie wird
in Pose Pose Pose Pose pose auf 0 gesetzt.
Für planare Weltpunkte und telezentrische Kameras existieren immer
zwei mögliche äquivalente Posen. Diese Mehrdeutigkeit kann nur
durch Zusatzwissen aufgelöst werden. vector_to_pose vector_to_pose VectorToPose VectorToPose VectorToPose gibt in
diesem Fall eine beliebige der zwei möglichen Lösungen zurück. Die
andere Lösung kann leicht dadurch berechnet werden, dass die Werte
von
und
in Pose Pose Pose Pose pose durch
und
ersetzt
werden.
Die Methode 'analytic' "analytic" "analytic" "analytic" "analytic" erlaubt maximal 32767
Punktkorrespondenzen als Eingabe.
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.
Art des Algorithmus
Defaultwert:
'iterative'
"iterative"
"iterative"
"iterative"
"iterative"
Werteliste: 'analytic' "analytic" "analytic" "analytic" "analytic" , 'iterative' "iterative" "iterative" "iterative" "iterative" , 'planar_analytic' "planar_analytic" "planar_analytic" "planar_analytic" "planar_analytic" , 'telecentric' "telecentric" "telecentric" "telecentric" "telecentric" , 'telecentric_planar' "telecentric_planar" "telecentric_planar" "telecentric_planar" "telecentric_planar" , 'telecentric_planar_robust' "telecentric_planar_robust" "telecentric_planar_robust" "telecentric_planar_robust" "telecentric_planar_robust" , 'telecentric_robust' "telecentric_robust" "telecentric_robust" "telecentric_robust" "telecentric_robust"
Art des mit Quality zurückgegebenen Qualitätsmaßes.
Defaultwert:
'error'
"error"
"error"
"error"
"error"
Werteliste: 'error' "error" "error" "error" "error"
Sind die Parameterwerte korrekt, dann liefert vector_to_pose vector_to_pose VectorToPose VectorToPose VectorToPose
den Wert 2 (H_MSG_TRUE).
proj_hom_mat2d_to_pose proj_hom_mat2d_to_pose ProjHomMat2dToPose ProjHomMat2dToPose ProjHomMat2dToPose ,
vector_to_rel_pose vector_to_rel_pose VectorToRelPose VectorToRelPose VectorToRelPose ,
camera_calibration camera_calibration CameraCalibration CameraCalibration CameraCalibration
Calibration