ClassesClasses | | Operators

disp_caltabT_disp_caltabDispCaltabDispCaltab (Operator)

Name

disp_caltabT_disp_caltabDispCaltabDispCaltab — Project and visualize the 3D model of the calibration plate in the image.

Signature

disp_caltab( : : WindowHandle, CalPlateDescr, CameraParam, CalPlatePose, ScaleFac : )

Herror T_disp_caltab(const Htuple WindowHandle, const Htuple CalPlateDescr, const Htuple CameraParam, const Htuple CalPlatePose, const Htuple ScaleFac)

void DispCaltab(const HTuple& WindowHandle, const HTuple& CalPlateDescr, const HTuple& CameraParam, const HTuple& CalPlatePose, const HTuple& ScaleFac)

void HWindow::DispCaltab(const HString& CalPlateDescr, const HCamPar& CameraParam, const HPose& CalPlatePose, double ScaleFac) const

void HWindow::DispCaltab(const char* CalPlateDescr, const HCamPar& CameraParam, const HPose& CalPlatePose, double ScaleFac) const

void HCamPar::DispCaltab(const HWindow& WindowHandle, const HString& CalPlateDescr, const HPose& CalPlatePose, double ScaleFac) const

void HCamPar::DispCaltab(const HWindow& WindowHandle, const char* CalPlateDescr, const HPose& CalPlatePose, double ScaleFac) const

static void HOperatorSet.DispCaltab(HTuple windowHandle, HTuple calPlateDescr, HTuple cameraParam, HTuple calPlatePose, HTuple scaleFac)

void HWindow.DispCaltab(string calPlateDescr, HCamPar cameraParam, HPose calPlatePose, double scaleFac)

void HCamPar.DispCaltab(HWindow windowHandle, string calPlateDescr, HPose calPlatePose, double scaleFac)

Description

disp_caltabdisp_caltabDispCaltabDispCaltabDispCaltab is used to visualize the calibration marks and the connecting lines between the marks of the used calibration plate (CalPlateDescrCalPlateDescrCalPlateDescrCalPlateDescrcalPlateDescr) in the window specified by WindowHandleWindowHandleWindowHandleWindowHandlewindowHandle. Additionally, the x- and y-axes of the plate's coordinate system are printed on the plate's surface. For this, the 3D model of the calibration plate is projected into the image plane using the internal (CameraParamCameraParamCameraParamCameraParamcameraParam) and external camera parameters (CalPlatePoseCalPlatePoseCalPlatePoseCalPlatePosecalPlatePose, i.e., the pose of the calibration plate in camera coordinates). The underlying camera model is described in calibrate_camerascalibrate_camerasCalibrateCamerasCalibrateCamerasCalibrateCameras.

Typically, disp_caltabdisp_caltabDispCaltabDispCaltabDispCaltab is used to verify the result of the camera calibration (see calibrate_camerascalibrate_camerasCalibrateCamerasCalibrateCamerasCalibrateCameras or camera_calibrationcamera_calibrationCameraCalibrationCameraCalibrationCameraCalibration) by superimposing it onto the original image. The current line width can be set by set_line_widthset_line_widthSetLineWidthSetLineWidthSetLineWidth, the current color can be set by set_colorset_colorSetColorSetColorSetColor. Additionally, the font type of the labels of the coordinate axes can be set by set_fontset_fontSetFontSetFontSetFont.

The parameter ScaleFacScaleFacScaleFacScaleFacscaleFac influences the number of supporting points to approximate the elliptic contours of the calibration marks. You should increase the number of supporting points, if the image part in the output window is displayed with magnification (see set_partset_partSetPartSetPartSetPart).

Execution Information

Parameters

WindowHandleWindowHandleWindowHandleWindowHandlewindowHandle (input_control)  window HWindow, HTupleHTupleHtuple (handle) (IntPtr) (HHandle) (handle)

Window in which the calibration plate should be visualized.

CalPlateDescrCalPlateDescrCalPlateDescrCalPlateDescrcalPlateDescr (input_control)  filename.read HTupleHTupleHtuple (string) (string) (HString) (char*)

File name of the calibration plate description.

Default value: 'calplate.cpd' "calplate.cpd" "calplate.cpd" "calplate.cpd" "calplate.cpd"

List of values: 'calplate.cpd'"calplate.cpd""calplate.cpd""calplate.cpd""calplate.cpd", 'calplate_20mm.cpd'"calplate_20mm.cpd""calplate_20mm.cpd""calplate_20mm.cpd""calplate_20mm.cpd", 'calplate_40mm.cpd'"calplate_40mm.cpd""calplate_40mm.cpd""calplate_40mm.cpd""calplate_40mm.cpd", 'calplate_80mm.cpd'"calplate_80mm.cpd""calplate_80mm.cpd""calplate_80mm.cpd""calplate_80mm.cpd", 'caltab.descr'"caltab.descr""caltab.descr""caltab.descr""caltab.descr", 'caltab_160mm.cpd'"caltab_160mm.cpd""caltab_160mm.cpd""caltab_160mm.cpd""caltab_160mm.cpd"

File extension: .cpd, .descr

CameraParamCameraParamCameraParamCameraParamcameraParam (input_control)  campar HCamPar, HTupleHTupleHtuple (real / integer / string) (double / int / long / string) (double / Hlong / HString) (double / Hlong / char*)

Internal camera parameters.

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

External camera parameters (3D pose of the calibration plate in camera coordinates).

Number of elements: 7

ScaleFacScaleFacScaleFacScaleFacscaleFac (input_control)  real HTupleHTupleHtuple (real) (double) (double) (double)

Scaling factor for the visualization.

Default value: 1.0

Suggested values: 0.5, 1.0, 2.0, 3.0

Recommended increment: 0.05

Restriction: 0.0 < ScaleFac

Example (HDevelop)

* Read image of calibration plate.
read_image (Image, 'calib/calib_single_camera_01')
get_image_size (Image, Width, Height)
* Create and setup the calibration model.
create_calib_data ('calibration_object', 1, 1, CalibDataID)
CalPlateDescr := 'calplate_80mm.cpd'
set_calib_data_calib_object (CalibDataID, 0, CalPlateDescr)
CamParam := ['area_scan_division', 0.008, -1500, 3.7e-6, 3.7e-6, \
             640, 470, 1292, 964]
set_calib_data_cam_param (CalibDataID, 0, [], CamParam)
* Localize calibration plate in the image.
find_calib_object (Image, CalibDataID, 0, 0, 0, [], [])
get_calib_data_observ_pose (CalibDataID, 0, 0, 0, StartPose)
* Display calibration plate.
disp_caltab (WindowHandle, CalPlateDescr, CamParam, StartPose, 1)

Result

disp_caltabdisp_caltabDispCaltabDispCaltabDispCaltab returns 2 (H_MSG_TRUE) if all parameter values are correct. If necessary, an exception is raised.

Possible Predecessors

camera_calibrationcamera_calibrationCameraCalibrationCameraCalibrationCameraCalibration, read_cam_parread_cam_parReadCamParReadCamParReadCamPar, read_poseread_poseReadPoseReadPoseReadPose

See also

find_marks_and_posefind_marks_and_poseFindMarksAndPoseFindMarksAndPoseFindMarksAndPose, camera_calibrationcamera_calibrationCameraCalibrationCameraCalibrationCameraCalibration, sim_caltabsim_caltabSimCaltabSimCaltabSimCaltab, write_cam_parwrite_cam_parWriteCamParWriteCamParWriteCamPar, read_cam_parread_cam_parReadCamParReadCamParReadCamPar, create_posecreate_poseCreatePoseCreatePoseCreatePose, write_posewrite_poseWritePoseWritePoseWritePose, read_poseread_poseReadPoseReadPoseReadPose, project_3d_pointproject_3d_pointProject3dPointProject3dPointProject3dPoint, get_line_of_sightget_line_of_sightGetLineOfSightGetLineOfSightGetLineOfSight

Module

Foundation


ClassesClasses | | Operators