sim_caltab T_sim_caltab SimCaltab SimCaltab sim_caltab (Operator)
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