| Operatoren |
image_points_to_world_plane — Transformieren von Bildpunkten in die Ebene z=0 eines Weltkoordinatensystems.
image_points_to_world_plane transformiert Bildpunkte, die in Rows und Cols gegeben sind, in die Ebene z=0 in einem Weltkoordinatensystem und liefert ihre 3D-Koordinaten in X und Y 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 X und Y.
Es ist ratsam nur solche Bildkoordinaten Rows und Cols zu spezifizieren, die innerhalb der kalibrierten Bildgröße liegen. Das mathematische Modell funktioniert nur gut innerhalb des kalibrierten Bereichs.
Interne Kameraparameter.
3D-Lage des Weltkoordinatensystems in Kamerakoordinaten.
Parameteranzahl: 7
Zeilenkoordinaten der zu transformierenden Punkte.
Defaultwert: 100.0
Spaltenkoordinaten der zu transformierenden Punkte.
Defaultwert: 100.0
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
X-Koordinaten der Punkte im Weltkoordinatensystem.
Y-Koordinaten der Punkte im Weltkoordinatensystem.
* 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 image points into world coordinate system (unit mm).
image_points_to_world_plane(CamParam, WorldPose, PointRows, PointColumns, \
'mm', PointXCoord, PointYCoord)
Sind die Parameterwerte korrekt, dann liefert image_points_to_world_plane den Wert 2 (H_MSG_TRUE).
create_pose, hom_mat3d_to_pose, camera_calibration, hand_eye_calibration, set_origin_pose
contour_to_world_plane_xld, project_3d_point
Calibration
| Operatoren |