Name
contour_to_world_plane_xldT_contour_to_world_plane_xldContourToWorldPlaneXldcontour_to_world_plane_xldContourToWorldPlaneXldContourToWorldPlaneXld — Transformieren einer XLD-Kontur in die Ebene z=0 eines Weltkoordinatensystems.
void ContourToWorldPlaneXld(const HObject& Contours, HObject* ContoursTrans, const HTuple& CameraParam, const HTuple& WorldPose, const HTuple& Scale)
HXLDCont HXLDCont::ContourToWorldPlaneXld(const HTuple& CameraParam, const HPose& WorldPose, const HTuple& Scale) const
HXLDCont HXLDCont::ContourToWorldPlaneXld(const HTuple& CameraParam, const HPose& WorldPose, const HString& Scale) const
HXLDCont HXLDCont::ContourToWorldPlaneXld(const HTuple& CameraParam, const HPose& WorldPose, const char* Scale) const
HXLDCont HPose::ContourToWorldPlaneXld(const HXLDCont& Contours, const HTuple& CameraParam, const HTuple& Scale) const
HXLDCont HPose::ContourToWorldPlaneXld(const HXLDCont& Contours, const HTuple& CameraParam, const HString& Scale) const
HXLDCont HPose::ContourToWorldPlaneXld(const HXLDCont& Contours, const HTuple& CameraParam, const char* Scale) const
static void HOperatorSet.ContourToWorldPlaneXld(HObject contours, out HObject contoursTrans, HTuple cameraParam, HTuple worldPose, HTuple scale)
HXLDCont HXLDCont.ContourToWorldPlaneXld(HTuple cameraParam, HPose worldPose, HTuple scale)
HXLDCont HXLDCont.ContourToWorldPlaneXld(HTuple cameraParam, HPose worldPose, string scale)
HXLDCont HPose.ContourToWorldPlaneXld(HXLDCont contours, HTuple cameraParam, HTuple scale)
HXLDCont HPose.ContourToWorldPlaneXld(HXLDCont contours, HTuple cameraParam, string scale)
contour_to_world_plane_xldcontour_to_world_plane_xldContourToWorldPlaneXldcontour_to_world_plane_xldContourToWorldPlaneXldContourToWorldPlaneXld transformiert die Kontur ContoursContoursContoursContoursContourscontours
in die Ebene z=0 in einem Weltkoordinatensystem und liefert die nun in
3D-Koordinaten beschriebene Kontur in ContoursTransContoursTransContoursTransContoursTransContoursTranscontoursTrans zurück. Das
Weltkoordinatensystem wird gewählt, indem man seine 3D-Lage in
Kamerakoordinaten in WorldPoseWorldPoseWorldPoseWorldPoseWorldPoseworldPose übergibt. In CameraParamCameraParamCameraParamCameraParamCameraParamcameraParam
müssen die internen Kameraparameter übergeben werden (siehe
calibrate_camerascalibrate_camerasCalibrateCamerascalibrate_camerasCalibrateCamerasCalibrateCameras für ihre Reihenfolge und das zu Grunde liegende
Kameramodell).
In vielen Fällen sind CameraParamCameraParamCameraParamCameraParamCameraParamcameraParam und WorldPoseWorldPoseWorldPoseWorldPoseWorldPoseworldPose das
Ergebnis einer vorherigen Kamerakalibrierung mit dem Operator
calibrate_camerascalibrate_camerasCalibrateCamerascalibrate_camerasCalibrateCamerasCalibrateCameras. Ein Beispiel findet sich weiter unten.
Die erhaltenen 3D-Koordinaten können mit dem Parameter ScaleScaleScaleScaleScalescale
beliebig skaliert werden. Der Parameter ScaleScaleScaleScaleScalescale 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'"m""m""m""m""m",
'cm'"cm""cm""cm""cm""cm", 'mm'"mm""mm""mm""mm""mm" oder 'um'"um""um""um""um""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
WorldPoseWorldPoseWorldPoseWorldPoseWorldPoseworldPose spezifizierte Weltkoordinatensystem transformiert. Der
Schnittpunkt der Ebene z=0 mit dem Sehstrahl ergibt dann die
3D-Koordinaten der transformierten Kontur ContoursTransContoursTransContoursTransContoursTransContoursTranscontoursTrans.
- Multithreading-Typ: reentrant (läuft parallel zu nicht-exklusiven Operatoren).
- Multithreading-Bereich: global (kann von jedem Thread aufgerufen werden).
- Wird ohne Parallelisierung verarbeitet.
Zu transformierende Eingabe-XLD-Konturen in
Bildkoordinaten.
Transformierte XLD-Konturen in Weltkoordinaten.
3D-Lage des Weltkoordinatensystems in
Kamerakoordinaten.
Parameteranzahl: 7
ScaleScaleScaleScaleScalescale (input_control) number → HTupleHTupleHTupleVARIANTHtuple (string / integer / real) (string / int / long / double) (HString / Hlong / double) (char* / Hlong / double) (BSTR / Hlong / double) (char* / Hlong / double)
Maßstab oder Dimension.
Defaultwert:
'm'
"m"
"m"
"m"
"m"
"m"
Wertevorschläge: 'm'"m""m""m""m""m", 'cm'"cm""cm""cm""cm""cm", 'mm'"mm""mm""mm""mm""mm", 'microns'"microns""microns""microns""microns""microns", 'um'"um""um""um""um""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_xldcontour_to_world_plane_xldContourToWorldPlaneXldcontour_to_world_plane_xldContourToWorldPlaneXldContourToWorldPlaneXld den Wert 2 (H_MSG_TRUE).
create_posecreate_poseCreatePosecreate_poseCreatePoseCreatePose,
hom_mat3d_to_posehom_mat3d_to_poseHomMat3dToPosehom_mat3d_to_poseHomMat3dToPoseHomMat3dToPose,
camera_calibrationcamera_calibrationCameraCalibrationcamera_calibrationCameraCalibrationCameraCalibration,
hand_eye_calibrationhand_eye_calibrationHandEyeCalibrationhand_eye_calibrationHandEyeCalibrationHandEyeCalibration,
set_origin_poseset_origin_poseSetOriginPoseset_origin_poseSetOriginPoseSetOriginPose
image_points_to_world_planeimage_points_to_world_planeImagePointsToWorldPlaneimage_points_to_world_planeImagePointsToWorldPlaneImagePointsToWorldPlane
Calibration