| Operatoren |
contour_to_world_plane_xld — Transformieren einer XLD-Kontur in die Ebene z=0 eines Weltkoordinatensystems.
contour_to_world_plane_xld(Contours : ContoursTrans : CameraParam, WorldPose, Scale : )
contour_to_world_plane_xld transformiert die Kontur Contours in die Ebene z=0 in einem Weltkoordinatensystem und liefert die nun in 3D-Koordinaten beschriebene Kontur in ContoursTrans zurück. Das Weltkoordinatensystem wird gewählt, indem man seine 3D-Lage in Kamerakoordinaten in WorldPose übergibt. In CameraParam müssen die internen Kameraparameter übergeben werden (siehe calibrate_cameras für ihre Reihenfolge und das zu Grunde liegende Kameramodell).
In vielen Fällen sind CameraParam und WorldPose das Ergebnis einer vorherigen Kamerakalibrierung mit dem Operator calibrate_cameras. Ein Beispiel findet sich weiter unten.
Die erhaltenen 3D-Koordinaten können mit dem Parameter Scale beliebig skaliert werden. Der Parameter Scale entspricht dem Verhältnis gewünschte Einheit/ursprüngliche Einheit. Die ursprüngliche Einheit ist durch die Koordinaten des Kalibrierkörpers gegeben. Falls dies, wie bei der Standard-Kalibrierplatte, Meter sind, ist es auch möglich, die gewünschte Einheit direkt durch 'm', 'cm', 'mm' oder 'um' anzugeben.
Intern berechnet der Operator zuerst den Sehstrahl vom Projektionszentrum der Kamera zum Bildpunkt in Kamerakoordinaten, unter Berücksichtigung der radialen Verzeichnung. Anschließend wird dieser Sehstrahl in das in WorldPose spezifizierte Weltkoordinatensystem transformiert. Der Schnittpunkt der Ebene z=0 mit dem Sehstrahl ergibt dann die 3D-Koordinaten der transformierten Kontur ContoursTrans.
Zu transformierende Eingabe-XLD-Konturen in Bildkoordinaten.
Transformierte XLD-Konturen in Weltkoordinaten.
Interne Kameraparameter.
3D-Lage des Weltkoordinatensystems in Kamerakoordinaten.
Parameteranzahl: 7
Maßstab oder Dimension.
Defaultwert: 'm'
Wertevorschläge: 'm', 'cm', 'mm', 'microns', 'um', 1.0, 0.01, 0.001, 1.0e-6, 0.0254, 0.3048, 0.9144
Restriktion: Scale > 0
* Perform camera calibration (with standard calibration plate).
calibrate_cameras (CalibDataID, Error)
get_calib_data (CalibDataID, 'camera', 0, 'params', CamParam)
* Get reference pose (pose 2 of calibration object 0).
get_calib_data (CalibDataID, 'calib_obj_pose', [0,2], 'pose', WorldPose)
* Compensate thickness of plate.
set_origin_pose(ObjInCameraPose, 0, 0, 0.0006, WorldPose)
* Transform contours into world coordinate system (unit mm).
contour_to_world_plane_xld(Contours, ContoursTrans, CamParam, \
WorldPose, 'mm')
Sind die Parameterwerte korrekt, dann liefert contour_to_world_plane_xld den Wert 2 (H_MSG_TRUE).
create_pose, hom_mat3d_to_pose, camera_calibration, hand_eye_calibration, set_origin_pose
Calibration
| Operatoren |