Name
contour_to_world_plane_xldT_contour_to_world_plane_xldContourToWorldPlaneXldcontour_to_world_plane_xldContourToWorldPlaneXldContourToWorldPlaneXld — Transform an XLD contour into the plane z=0 of a world coordinate system.
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)
The operator contour_to_world_plane_xldcontour_to_world_plane_xldContourToWorldPlaneXldcontour_to_world_plane_xldContourToWorldPlaneXldContourToWorldPlaneXld transforms contour points
given in ContoursContoursContoursContoursContourscontours into the plane z=0 in a world coordinate system
and returns the 3D contour points in ContoursTransContoursTransContoursTransContoursTransContoursTranscontoursTrans. The world
coordinate system is chosen by passing its 3D pose relative to the camera
coordinate system in WorldPoseWorldPoseWorldPoseWorldPoseWorldPoseworldPose. In CameraParamCameraParamCameraParamCameraParamCameraParamcameraParam you
must pass the internal camera parameters (see write_cam_parwrite_cam_parWriteCamParwrite_cam_parWriteCamParWriteCamPar for
the sequence of the parameters and the underlying camera model).
In many cases CameraParamCameraParamCameraParamCameraParamCameraParamcameraParam and WorldPoseWorldPoseWorldPoseWorldPoseWorldPoseworldPose are the result of
calibrating the camera with the operator calibrate_camerascalibrate_camerasCalibrateCamerascalibrate_camerasCalibrateCamerasCalibrateCameras. See
below for an example.
With the parameter ScaleScaleScaleScaleScalescale you can scale the resulting 3D coordinates.
The parameter ScaleScaleScaleScaleScalescale must be specified as the ratio desired
unit/original unit. The original unit is determined by the coordinates of
the calibration object. If the original unit is meters (which is the case if
you use the standard calibration plate), you can set the desired unit
directly by selecting 'm'"m""m""m""m""m", 'cm'"cm""cm""cm""cm""cm", 'mm'"mm""mm""mm""mm""mm" or
'um'"um""um""um""um""um" for the parameter ScaleScaleScaleScaleScalescale.
Internally, the operator first computes the line of sight between the
projection center and the image point in the camera coordinate system, taking
into account the radial distortions. The line of sight is then transformed
into the world coordinate system specified in WorldPoseWorldPoseWorldPoseWorldPoseWorldPoseworldPose. By
intersecting the plane z=0 with the line of sight the 3D coordinates of the
transformed contour ContoursTransContoursTransContoursTransContoursTransContoursTranscontoursTrans are obtained.
- Multithreading type: reentrant (runs in parallel with non-exclusive operators).
- Multithreading scope: global (may be called from any thread).
- Processed without parallelization.
Input XLD contours to be transformed in image
coordinates.
Transformed XLD contours in world coordinates.
Internal camera parameters.
Number of elements: CameraParam == 8 || CameraParam == 11 || CameraParam == 12
3D pose of the world coordinate system in camera
coordinates.
Number of elements: 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)
Scale or dimension
Default value:
'm'
"m"
"m"
"m"
"m"
"m"
Suggested values: '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
* perform camera calibration (with standard calibration plate)
camera_calibration(NX, NY, NZ, NRow, NCol, StartCamParam, NStartPose, \
'all', FinalCamParam, NFinalPose, Errors)
* world coordinate system is defined by calibration plate in first image
FinalPose1 := NFinalPose[0:6]
* compensate thickness of plate
set_origin_pose(FinalPose1, 0, 0, 0.0006, WorldPose)
* transform contours into world coordinate system (unit mm)
contour_to_world_plane_xld(Contours, ContoursTrans, \
FinalCamParam, WorldPose, 'mm')
* perform camera calibration (with standard calibration plate)
camera_calibration(NX, NY, NZ, NRow, NCol, StartCamParam, NStartPose, \
'all', FinalCamParam, NFinalPose, Errors)
* world coordinate system is defined by calibration plate in first image
FinalPose1 := NFinalPose[0:6]
* compensate thickness of plate
set_origin_pose(FinalPose1, 0, 0, 0.0006, WorldPose)
* transform contours into world coordinate system (unit mm)
contour_to_world_plane_xld(Contours, ContoursTrans, \
FinalCamParam, WorldPose, 'mm')
* perform camera calibration (with standard calibration plate)
camera_calibration(NX, NY, NZ, NRow, NCol, StartCamParam, NStartPose, \
'all', FinalCamParam, NFinalPose, Errors)
* world coordinate system is defined by calibration plate in first image
FinalPose1 := NFinalPose[0:6]
* compensate thickness of plate
set_origin_pose(FinalPose1, 0, 0, 0.0006, WorldPose)
* transform contours into world coordinate system (unit mm)
contour_to_world_plane_xld(Contours, ContoursTrans, \
FinalCamParam, WorldPose, 'mm')
HTuple NX, NY, NZ, NRow, NCol;
HTuple StartCamParam, NStartPose, FinalCamParam, NFinalPose, Errors;
HTuple FinalPose1, WorldPose;
Hobject Contours, ContoursTrans;
// perform camera calibration (with standard calibration plate)
camera_calibration(NX, NY, NZ, NRow, NCol, StartCamParam, NStartPose, "all",
&FinalCamParam, &NFinalPose, &Errors);
// world coordinate system is defined by calibration plate in first image
FinalPose1 = NFinalPose(0,6);
// compensate thickness of plate
set_origin_pose(FinalPose1, 0, 0, 0.0006, &WorldPose);
// transform contours into world coordinate system (unit mm)
contour_to_world_plane_xld(Contours, &ContoursTrans,
FinalCamParam, WorldPose, "mm");
* perform camera calibration (with standard calibration plate)
camera_calibration(NX, NY, NZ, NRow, NCol, StartCamParam, NStartPose, \
'all', FinalCamParam, NFinalPose, Errors)
* world coordinate system is defined by calibration plate in first image
FinalPose1 := NFinalPose[0:6]
* compensate thickness of plate
set_origin_pose(FinalPose1, 0, 0, 0.0006, WorldPose)
* transform contours into world coordinate system (unit mm)
contour_to_world_plane_xld(Contours, ContoursTrans, \
FinalCamParam, WorldPose, 'mm')
* perform camera calibration (with standard calibration plate)
camera_calibration(NX, NY, NZ, NRow, NCol, StartCamParam, NStartPose, \
'all', FinalCamParam, NFinalPose, Errors)
* world coordinate system is defined by calibration plate in first image
FinalPose1 := NFinalPose[0:6]
* compensate thickness of plate
set_origin_pose(FinalPose1, 0, 0, 0.0006, WorldPose)
* transform contours into world coordinate system (unit mm)
contour_to_world_plane_xld(Contours, ContoursTrans, \
FinalCamParam, WorldPose, 'mm')
contour_to_world_plane_xldcontour_to_world_plane_xldContourToWorldPlaneXldcontour_to_world_plane_xldContourToWorldPlaneXldContourToWorldPlaneXld returns 2 (H_MSG_TRUE) if all parameter values
are correct. If necessary, an exception is raised.
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