sim_caltab T_sim_caltab SimCaltab SimCaltab sim_caltab (Operator)
Name
sim_caltab T_sim_caltab SimCaltab SimCaltab sim_caltab — Simulate an image with calibration plate.
Signature
void SimCaltab (HObject* SimImage , const HTuple& CalPlateDescr , const HTuple& CameraParam , const HTuple& CalPlatePose , const HTuple& GrayBackground , const HTuple& GrayPlate , const HTuple& GrayMarks , const HTuple& ScaleFac )
void HImage ::SimCaltab (const HString& CalPlateDescr , const HCamPar& CameraParam , const HPose& CalPlatePose , Hlong GrayBackground , Hlong GrayPlate , Hlong GrayMarks , double ScaleFac )
void HImage ::SimCaltab (const char* CalPlateDescr , const HCamPar& CameraParam , const HPose& CalPlatePose , Hlong GrayBackground , Hlong GrayPlate , Hlong GrayMarks , double ScaleFac )
void HImage ::SimCaltab (const wchar_t* CalPlateDescr , const HCamPar& CameraParam , const HPose& CalPlatePose , Hlong GrayBackground , Hlong GrayPlate , Hlong GrayMarks , double ScaleFac )
(
Windows only)
HImage HCamPar ::SimCaltab (const HString& CalPlateDescr , const HPose& CalPlatePose , Hlong GrayBackground , Hlong GrayPlate , Hlong GrayMarks , double ScaleFac ) const
HImage HCamPar ::SimCaltab (const char* CalPlateDescr , const HPose& CalPlatePose , Hlong GrayBackground , Hlong GrayPlate , Hlong GrayMarks , double ScaleFac ) const
HImage HCamPar ::SimCaltab (const wchar_t* CalPlateDescr , const HPose& CalPlatePose , Hlong GrayBackground , Hlong GrayPlate , Hlong GrayMarks , double ScaleFac ) const
(
Windows only)
HImage HPose ::SimCaltab (const HString& CalPlateDescr , const HCamPar& CameraParam , Hlong GrayBackground , Hlong GrayPlate , Hlong GrayMarks , double ScaleFac ) const
HImage HPose ::SimCaltab (const char* CalPlateDescr , const HCamPar& CameraParam , Hlong GrayBackground , Hlong GrayPlate , Hlong GrayMarks , double ScaleFac ) const
HImage HPose ::SimCaltab (const wchar_t* CalPlateDescr , const HCamPar& CameraParam , Hlong GrayBackground , Hlong GrayPlate , Hlong GrayMarks , double ScaleFac ) const
(
Windows only)
static void HOperatorSet .SimCaltab (out HObject simImage , HTuple calPlateDescr , HTuple cameraParam , HTuple calPlatePose , HTuple grayBackground , HTuple grayPlate , HTuple grayMarks , HTuple scaleFac )
void HImage .SimCaltab (string calPlateDescr , HCamPar cameraParam , HPose calPlatePose , int grayBackground , int grayPlate , int grayMarks , double scaleFac )
HImage HCamPar .SimCaltab (string calPlateDescr , HPose calPlatePose , int grayBackground , int grayPlate , int grayMarks , double scaleFac )
HImage HPose .SimCaltab (string calPlateDescr , HCamPar cameraParam , int grayBackground , int grayPlate , int grayMarks , double scaleFac )
Description
sim_caltab sim_caltab SimCaltab SimCaltab sim_caltab is used to generate a simulated calibration
image. The calibration plate description is read from the file
CalPlateDescr CalPlateDescr CalPlateDescr calPlateDescr cal_plate_descr and will be projected into the image plane
using the given camera parameters, thus internal camera parameters
CameraParam CameraParam CameraParam cameraParam camera_param and external camera parameters
CalPlatePose CalPlatePose CalPlatePose calPlatePose cal_plate_pose (see also project_3d_point project_3d_point Project3dPoint Project3dPoint project_3d_point ).
Thereby the pose is expected to be in the form
, where
ccs denotes the camera coordinate system and
wcs the world coordinate system (see
Transformations / Poses
and “Solution Guide III-C - 3D Vision”).
In the simulated image only the calibration plate is shown. The
image background is set to the gray value GrayBackground GrayBackground GrayBackground grayBackground gray_background ,
the calibration plate background is set to GrayPlate GrayPlate GrayPlate grayPlate gray_plate , and
the calibration marks are set to the gray value GrayMarks GrayMarks GrayMarks grayMarks gray_marks .
The parameter ScaleFac ScaleFac ScaleFac scaleFac scale_fac influences the number of supporting
points to approximate the elliptic contours of the calibration
marks, see also disp_caltab disp_caltab DispCaltab DispCaltab disp_caltab . Increasing the number of
supporting points causes a more accurate determination of the mark
boundary, but increases the computation time, too. For each pixel
of the simulated image which touches a subpixel-boundary of this
kind, the gray value is set linearly between GrayMarks GrayMarks GrayMarks grayMarks gray_marks and
GrayPlate GrayPlate GrayPlate grayPlate gray_plate dependent on the proportion Inside/Outside.
By applying the operator sim_caltab sim_caltab SimCaltab SimCaltab sim_caltab you can generate
synthetic calibration images (with known camera parameters!) to test
the quality of the calibration algorithm (see
Calibration ).
Execution Information
Multithreading type: reentrant (runs in parallel with non-exclusive operators).
Multithreading scope: global (may be called from any thread).
Automatically parallelized on internal data level.
Parameters
SimImage SimImage SimImage simImage sim_image (output_object) image → object HImage HObject HObject Hobject * (byte)
Simulated calibration image.
CalPlateDescr CalPlateDescr CalPlateDescr calPlateDescr cal_plate_descr (input_control) filename.read → HTuple str HTuple Htuple (string) (string ) (HString ) (char* )
File name of the calibration plate description.
Default:
'calplate_320mm.cpd'
"calplate_320mm.cpd"
"calplate_320mm.cpd"
"calplate_320mm.cpd"
"calplate_320mm.cpd"
List of values:
'calplate_10mm.cpd' "calplate_10mm.cpd" "calplate_10mm.cpd" "calplate_10mm.cpd" "calplate_10mm.cpd" , 'calplate_1200mm.cpd' "calplate_1200mm.cpd" "calplate_1200mm.cpd" "calplate_1200mm.cpd" "calplate_1200mm.cpd" , 'calplate_160mm.cpd' "calplate_160mm.cpd" "calplate_160mm.cpd" "calplate_160mm.cpd" "calplate_160mm.cpd" , 'calplate_20mm.cpd' "calplate_20mm.cpd" "calplate_20mm.cpd" "calplate_20mm.cpd" "calplate_20mm.cpd" , 'calplate_20mm_dark_on_light.cpd' "calplate_20mm_dark_on_light.cpd" "calplate_20mm_dark_on_light.cpd" "calplate_20mm_dark_on_light.cpd" "calplate_20mm_dark_on_light.cpd" , 'calplate_320mm.cpd' "calplate_320mm.cpd" "calplate_320mm.cpd" "calplate_320mm.cpd" "calplate_320mm.cpd" , 'calplate_40mm.cpd' "calplate_40mm.cpd" "calplate_40mm.cpd" "calplate_40mm.cpd" "calplate_40mm.cpd" , 'calplate_40mm_dark_on_light.cpd' "calplate_40mm_dark_on_light.cpd" "calplate_40mm_dark_on_light.cpd" "calplate_40mm_dark_on_light.cpd" "calplate_40mm_dark_on_light.cpd" , 'calplate_5mm.cpd' "calplate_5mm.cpd" "calplate_5mm.cpd" "calplate_5mm.cpd" "calplate_5mm.cpd" , 'calplate_640mm.cpd' "calplate_640mm.cpd" "calplate_640mm.cpd" "calplate_640mm.cpd" "calplate_640mm.cpd" , 'calplate_80mm.cpd' "calplate_80mm.cpd" "calplate_80mm.cpd" "calplate_80mm.cpd" "calplate_80mm.cpd" , 'calplate_80mm_dark_on_light.cpd' "calplate_80mm_dark_on_light.cpd" "calplate_80mm_dark_on_light.cpd" "calplate_80mm_dark_on_light.cpd" "calplate_80mm_dark_on_light.cpd" , 'caltab_100mm.descr' "caltab_100mm.descr" "caltab_100mm.descr" "caltab_100mm.descr" "caltab_100mm.descr" , 'caltab_10mm.descr' "caltab_10mm.descr" "caltab_10mm.descr" "caltab_10mm.descr" "caltab_10mm.descr" , 'caltab_200mm.descr' "caltab_200mm.descr" "caltab_200mm.descr" "caltab_200mm.descr" "caltab_200mm.descr" , 'caltab_2500um.descr' "caltab_2500um.descr" "caltab_2500um.descr" "caltab_2500um.descr" "caltab_2500um.descr" , 'caltab_30mm.descr' "caltab_30mm.descr" "caltab_30mm.descr" "caltab_30mm.descr" "caltab_30mm.descr" , 'caltab_650um.descr' "caltab_650um.descr" "caltab_650um.descr" "caltab_650um.descr" "caltab_650um.descr" , 'caltab_6mm.descr' "caltab_6mm.descr" "caltab_6mm.descr" "caltab_6mm.descr" "caltab_6mm.descr" , 'caltab_800mm.descr' "caltab_800mm.descr" "caltab_800mm.descr" "caltab_800mm.descr" "caltab_800mm.descr" , 'caltab_big.descr' "caltab_big.descr" "caltab_big.descr" "caltab_big.descr" "caltab_big.descr" , 'caltab_small.descr' "caltab_small.descr" "caltab_small.descr" "caltab_small.descr" "caltab_small.descr"
File extension:
.cpd, .descr
CameraParam CameraParam CameraParam cameraParam camera_param (input_control) campar → HCamPar , HTuple Sequence[Union[int, float, str]] HTuple Htuple (real / integer / string) (double / int / long / string) (double / Hlong / HString) (double / Hlong / char*)
Internal camera parameters.
CalPlatePose CalPlatePose CalPlatePose calPlatePose cal_plate_pose (input_control) pose → HPose , HTuple Sequence[Union[int, float]] HTuple Htuple (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
GrayBackground GrayBackground GrayBackground grayBackground gray_background (input_control) integer → HTuple int HTuple Htuple (integer) (int / long) (Hlong ) (Hlong )
Gray value of image background.
Default:
128
Suggested values:
0, 32, 64, 96, 128, 160
Restriction:
0 <= GrayBackground <= 255
GrayPlate GrayPlate GrayPlate grayPlate gray_plate (input_control) integer → HTuple int HTuple Htuple (integer) (int / long) (Hlong ) (Hlong )
Gray value of calibration plate.
Default:
80
Suggested values:
144, 160, 176, 192, 208, 224, 240
Restriction:
0 <= GrayPlate <= 255
GrayMarks GrayMarks GrayMarks grayMarks gray_marks (input_control) integer → HTuple int HTuple Htuple (integer) (int / long) (Hlong ) (Hlong )
Gray value of calibration marks.
Default:
224
Suggested values:
16, 32, 48, 64, 80, 96, 112
Restriction:
0 <= GrayMarks <= 255
ScaleFac ScaleFac ScaleFac scaleFac scale_fac (input_control) real → HTuple float HTuple Htuple (real) (double ) (double ) (double )
Scaling factor to reduce oversampling.
Default:
1.0
Suggested values:
1.0, 0.5, 0.25, 0.125
Recommended increment:
0.05
Restriction:
1.0 >= ScaleFac
Example (HDevelop)
* Read calibration image.
read_image(Image1, 'calib-01')
* Find calibration pattern.
CameraType := 'area_scan_division'
StartCamPar := [CameraType, Focus, Kappa, Sx, Sy, Cx, Cy, \
ImageWidth, ImageHeight]
create_calib_data ('calibration_object', 1, 1, CalibDataID)
set_calib_data_cam_param (CalibDataID, 0, [], StartCamPar)
set_calib_data_calib_object (CalibDataID, 0, 'calplate.cpd')
find_caltab(Image1, CalPlate1, 'caltab.descr', 3, 112, 5)
* Find calibration marks and initial pose.
find_calib_object (Image1, CalibDataID, 0, 0, 0, [], [])
* Camera calibration.
calibrate_cameras (CalibDataID, Error)
* Simulate calibration image.
get_calib_data (CalibDataID, 'calib_obj_pose', [0, 0], 'pose', FinalPose)
get_calib_data (CalibDataID, 'camera', 0, 'params', CameraParam)
sim_caltab(Image1Sim, 'calplate.cpd', CameraParam, FinalPose, 128, \
80, 224, 1)
Result
sim_caltab sim_caltab SimCaltab SimCaltab sim_caltab returns 2 (
H_MSG_TRUE )
if all parameter values are
correct. If necessary, an exception is raised.
Possible Predecessors
camera_calibration camera_calibration CameraCalibration CameraCalibration camera_calibration ,
find_marks_and_pose find_marks_and_pose FindMarksAndPose FindMarksAndPose find_marks_and_pose ,
read_pose read_pose ReadPose ReadPose read_pose ,
read_cam_par read_cam_par ReadCamPar ReadCamPar read_cam_par ,
hom_mat3d_to_pose hom_mat3d_to_pose HomMat3dToPose HomMat3dToPose hom_mat3d_to_pose
Possible Successors
find_caltab find_caltab FindCaltab FindCaltab find_caltab
See also
find_caltab find_caltab FindCaltab FindCaltab find_caltab ,
find_marks_and_pose find_marks_and_pose FindMarksAndPose FindMarksAndPose find_marks_and_pose ,
camera_calibration camera_calibration CameraCalibration CameraCalibration camera_calibration ,
disp_caltab disp_caltab DispCaltab DispCaltab disp_caltab ,
create_pose create_pose CreatePose CreatePose create_pose ,
hom_mat3d_to_pose hom_mat3d_to_pose HomMat3dToPose HomMat3dToPose hom_mat3d_to_pose ,
project_3d_point project_3d_point Project3dPoint Project3dPoint project_3d_point ,
gen_caltab gen_caltab GenCaltab GenCaltab gen_caltab
Module
Calibration