KlassenKlassenKlassenKlassen | | | | Operatoren

image_points_to_world_planeT_image_points_to_world_planeImagePointsToWorldPlaneimage_points_to_world_planeImagePointsToWorldPlaneImagePointsToWorldPlane (Operator)

Name

image_points_to_world_planeT_image_points_to_world_planeImagePointsToWorldPlaneimage_points_to_world_planeImagePointsToWorldPlaneImagePointsToWorldPlane — Transformieren von Bildpunkten in die Ebene z=0 eines Weltkoordinatensystems.

Signatur

image_points_to_world_plane( : : CameraParam, WorldPose, Rows, Cols, Scale : X, Y)

Herror T_image_points_to_world_plane(const Htuple CameraParam, const Htuple WorldPose, const Htuple Rows, const Htuple Cols, const Htuple Scale, Htuple* X, Htuple* Y)

Herror image_points_to_world_plane(const HTuple& CameraParam, const HTuple& WorldPose, const HTuple& Rows, const HTuple& Cols, const HTuple& Scale, HTuple* X, HTuple* Y)

void ImagePointsToWorldPlane(const HTuple& CameraParam, const HTuple& WorldPose, const HTuple& Rows, const HTuple& Cols, const HTuple& Scale, HTuple* X, HTuple* Y)

void HCamPar::ImagePointsToWorldPlane(const HPose& WorldPose, const HTuple& Rows, const HTuple& Cols, const HTuple& Scale, HTuple* X, HTuple* Y) const

void HCamPar::ImagePointsToWorldPlane(const HPose& WorldPose, const HTuple& Rows, const HTuple& Cols, const HString& Scale, HTuple* X, HTuple* Y) const

void HCamPar::ImagePointsToWorldPlane(const HPose& WorldPose, const HTuple& Rows, const HTuple& Cols, const char* Scale, HTuple* X, HTuple* Y) const

void HOperatorSetX.ImagePointsToWorldPlane(
[in] VARIANT CameraParam, [in] VARIANT WorldPose, [in] VARIANT Rows, [in] VARIANT Cols, [in] VARIANT Scale, [out] VARIANT* X, [out] VARIANT* Y)

VARIANT HCamParX.ImagePointsToWorldPlane(
[in] VARIANT CameraParam, [in] VARIANT WorldPose, [in] VARIANT Rows, [in] VARIANT Cols, [in] VARIANT Scale, [out] VARIANT* Y)

static void HOperatorSet.ImagePointsToWorldPlane(HTuple cameraParam, HTuple worldPose, HTuple rows, HTuple cols, HTuple scale, out HTuple x, out HTuple y)

void HCamPar.ImagePointsToWorldPlane(HPose worldPose, HTuple rows, HTuple cols, HTuple scale, out HTuple x, out HTuple y)

void HCamPar.ImagePointsToWorldPlane(HPose worldPose, HTuple rows, HTuple cols, string scale, out HTuple x, out HTuple y)

Beschreibung

image_points_to_world_planeimage_points_to_world_planeImagePointsToWorldPlaneimage_points_to_world_planeImagePointsToWorldPlaneImagePointsToWorldPlane transformiert Bildpunkte, die in RowsRowsRowsRowsRowsrows und ColsColsColsColsColscols gegeben sind, in die Ebene z=0 in einem Weltkoordinatensystem und liefert ihre 3D-Koordinaten in XXXXXx und YYYYYy 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 XXXXXx und YYYYYy.

Es ist ratsam nur solche Bildkoordinaten RowsRowsRowsRowsRowsrows und ColsColsColsColsColscols zu spezifizieren, die innerhalb der kalibrierten Bildgröße liegen. Das mathematische Modell funktioniert nur gut innerhalb des kalibrierten Bereichs.

Parallelisierung

Parameter

CameraParamCameraParamCameraParamCameraParamCameraParamcameraParam (input_control)  campar HCamPar, HTupleHTupleHTupleHCamParX, VARIANTHtuple (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

RowsRowsRowsRowsRowsrows (input_control)  coordinates.y-array HTupleHTupleHTupleVARIANTHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong) (double / Hlong) (double / Hlong)

Zeilenkoordinaten der zu transformierenden Punkte.

Defaultwert: 100.0

ColsColsColsColsColscols (input_control)  coordinates.x-array HTupleHTupleHTupleVARIANTHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong) (double / Hlong) (double / Hlong)

Spaltenkoordinaten der zu transformierenden Punkte.

Defaultwert: 100.0

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

XXXXXx (output_control)  coordinates.x-array HTupleHTupleHTupleVARIANTHtuple (real) (double) (double) (double) (double) (double)

X-Koordinaten der Punkte im Weltkoordinatensystem.

YYYYYy (output_control)  coordinates.y-array HTupleHTupleHTupleVARIANTHtuple (real) (double) (double) (double) (double) (double)

Y-Koordinaten der Punkte im Weltkoordinatensystem.

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 image points into world coordinate system (unit mm).
image_points_to_world_plane(CamParam, WorldPose, PointRows, PointColumns, \
                            'mm', PointXCoord, PointYCoord)

Ergebnis

Sind die Parameterwerte korrekt, dann liefert image_points_to_world_planeimage_points_to_world_planeImagePointsToWorldPlaneimage_points_to_world_planeImagePointsToWorldPlaneImagePointsToWorldPlane 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

contour_to_world_plane_xldcontour_to_world_plane_xldContourToWorldPlaneXldcontour_to_world_plane_xldContourToWorldPlaneXldContourToWorldPlaneXld, project_3d_pointproject_3d_pointProject3dPointproject_3d_pointProject3dPointProject3dPoint

Modul

Calibration


KlassenKlassenKlassenKlassen | | | | Operatoren