KlassenKlassenKlassenKlassen | | | | Operatoren

contour_to_world_plane_xldT_contour_to_world_plane_xldContourToWorldPlaneXldcontour_to_world_plane_xldContourToWorldPlaneXldContourToWorldPlaneXld (Operator)

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.

Signatur

contour_to_world_plane_xld(Contours : ContoursTrans : CameraParam, WorldPose, Scale : )

Herror T_contour_to_world_plane_xld(const Hobject Contours, Hobject* ContoursTrans, const Htuple CameraParam, const Htuple WorldPose, const Htuple Scale)

Herror contour_to_world_plane_xld(Hobject Contours, Hobject* ContoursTrans, const HTuple& CameraParam, const HTuple& WorldPose, const HTuple& Scale)

HXLDCont HXLDCont::ContourToWorldPlaneXld(const HTuple& CameraParam, const HTuple& WorldPose, const HTuple& Scale) const

HXLDContArray HXLDContArray::ContourToWorldPlaneXld(const HTuple& CameraParam, const HTuple& WorldPose, const HTuple& Scale) const

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

void HOperatorSetX.ContourToWorldPlaneXld(
[in] IHUntypedObjectX* Contours, [out] IHUntypedObjectX*ContoursTrans, [in] VARIANT CameraParam, [in] VARIANT WorldPose, [in] VARIANT Scale)

IHXLDContX* HXLDContX.ContourToWorldPlaneXld(
[in] VARIANT CameraParam, [in] VARIANT WorldPose, [in] VARIANT Scale)

IHXLDContX* HPoseX.ContourToWorldPlaneXld(
[in] IHXLDContX* Contours, [in] VARIANT CameraParam, [in] VARIANT WorldPose, [in] VARIANT Scale)

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)

Beschreibung

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.

Parallelisierung

Parameter

ContoursContoursContoursContoursContourscontours (input_object)  xld_cont(-array) objectHXLDContHXLDContHXLDContHXLDContXHobject

Zu transformierende Eingabe-XLD-Konturen in Bildkoordinaten.

ContoursTransContoursTransContoursTransContoursTransContoursTranscontoursTrans (output_object)  xld_cont(-array) objectHXLDContHXLDContHXLDContHXLDContXHobject *

Transformierte XLD-Konturen in Weltkoordinaten.

CameraParamCameraParamCameraParamCameraParamCameraParamcameraParam (input_control)  number-array HTupleHTupleHTupleVARIANTHtuple (real / integer / string) (double / int / long / string) (double / Hlong / HString) (double / Hlong / char*) (double / Hlong / BSTR) (double / Hlong / char*)

Interne Kameraparameter.

WorldPoseWorldPoseWorldPoseWorldPoseWorldPoseworldPose (input_control)  pose HPose, HTupleHTupleHTupleHPoseX, VARIANTHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong) (double / Hlong) (double / Hlong)

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

Beispiel (HDevelop)

*  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')

Ergebnis

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).

Vorgänger

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

Siehe auch

image_points_to_world_planeimage_points_to_world_planeImagePointsToWorldPlaneimage_points_to_world_planeImagePointsToWorldPlaneImagePointsToWorldPlane

Modul

Calibration


KlassenKlassenKlassenKlassen | | | | Operatoren