contour_to_world_plane_xldT_contour_to_world_plane_xldContourToWorldPlaneXldContourToWorldPlaneXld (Operator)

Name

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

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 HXLDCont::ContourToWorldPlaneXld(const HTuple& CameraParam, const HPose& WorldPose, const wchar_t* Scale) const   (Nur Windows)

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

HXLDCont HPose::ContourToWorldPlaneXld(const HXLDCont& Contours, const HTuple& CameraParam, const wchar_t* Scale) const   (Nur Windows)

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_xldContourToWorldPlaneXldContourToWorldPlaneXldContourToWorldPlaneXld transformiert die Kontur ContoursContoursContoursContourscontours in die Ebene z=0 in einem Weltkoordinatensystem und liefert die nun in 3D-Koordinaten beschriebene Kontur in ContoursTransContoursTransContoursTransContoursTranscontoursTrans zurück. Das Weltkoordinatensystem (wcs) wird gewählt, indem man seine 3D-Lage in Kamerakoordinaten in WorldPoseWorldPoseWorldPoseWorldPoseworldPose übergibt. Diese 3D-Lage wird in der Form erwartet. Dabei steht ccs für das Kamerakoordinatensystem, siehe auch Transformationen / Posen und „Solution Guide III-C - 3D Vision“. In CameraParamCameraParamCameraParamCameraParamcameraParam müssen die internen Kameraparameter übergeben werden (siehe Kalibrierung für ihre Reihenfolge und das zu Grunde liegende Kameramodell).

In vielen Fällen sind CameraParamCameraParamCameraParamCameraParamcameraParam und WorldPoseWorldPoseWorldPoseWorldPoseworldPose das Ergebnis einer vorherigen Kamerakalibrierung mit dem Operator calibrate_camerascalibrate_camerasCalibrateCamerasCalibrateCamerasCalibrateCameras. Ein Beispiel findet sich weiter unten.

Die erhaltenen 3D-Koordinaten können mit dem Parameter ScaleScaleScaleScalescale beliebig skaliert werden. Der Parameter ScaleScaleScaleScalescale 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", 'cm'"cm""cm""cm""cm", 'mm'"mm""mm""mm""mm" oder '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 WorldPoseWorldPoseWorldPoseWorldPoseworldPose spezifizierte Weltkoordinatensystem transformiert. Der Schnittpunkt der Ebene z=0 mit dem Sehstrahl ergibt dann die 3D-Koordinaten der transformierten Kontur ContoursTransContoursTransContoursTransContoursTranscontoursTrans.

Ausführungsinformationen

Parameter

ContoursContoursContoursContourscontours (input_object)  xld_cont(-array) objectHXLDContHXLDContHobject

Zu transformierende Eingabe-XLD-Konturen in Bildkoordinaten.

ContoursTransContoursTransContoursTransContoursTranscontoursTrans (output_object)  xld_cont(-array) objectHXLDContHXLDContHobject *

Transformierte XLD-Konturen in Weltkoordinaten.

CameraParamCameraParamCameraParamCameraParamcameraParam (input_control)  number-array HTupleHTupleHtuple (real / integer / string) (double / int / long / string) (double / Hlong / HString) (double / Hlong / char*)

Interne Kameraparameter.

WorldPoseWorldPoseWorldPoseWorldPoseworldPose (input_control)  pose HPose, HTupleHTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)

3D-Lage des Weltkoordinatensystems in Kamerakoordinaten.

Parameteranzahl: 7

ScaleScaleScaleScalescale (input_control)  number HTupleHTupleHtuple (string / integer / real) (string / int / long / double) (HString / Hlong / double) (char* / Hlong / double)

Maßstab oder Dimension.

Defaultwert: 'm' "m" "m" "m" "m"

Wertevorschläge: 'm'"m""m""m""m", 'cm'"cm""cm""cm""cm", 'mm'"mm""mm""mm""mm", 'microns'"microns""microns""microns""microns", '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_xldContourToWorldPlaneXldContourToWorldPlaneXldContourToWorldPlaneXld den Wert 2 (H_MSG_TRUE).

Vorgänger

create_posecreate_poseCreatePoseCreatePoseCreatePose, hom_mat3d_to_posehom_mat3d_to_poseHomMat3dToPoseHomMat3dToPoseHomMat3dToPose, camera_calibrationcamera_calibrationCameraCalibrationCameraCalibrationCameraCalibration, hand_eye_calibrationhand_eye_calibrationHandEyeCalibrationHandEyeCalibrationHandEyeCalibration, set_origin_poseset_origin_poseSetOriginPoseSetOriginPoseSetOriginPose

Siehe auch

image_points_to_world_planeimage_points_to_world_planeImagePointsToWorldPlaneImagePointsToWorldPlaneImagePointsToWorldPlane

Modul

Calibration