Name
sim_caltabT_sim_caltabSimCaltabsim_caltabSimCaltabSimCaltab — Simulate an image with calibration plate.
Herror sim_caltab(Hobject* SimImage, const HTuple& CalTabDescrFile, const HTuple& CameraParam, const HTuple& CaltabPose, const HTuple& GrayBackground, const HTuple& GrayCaltab, const HTuple& GrayMarks, const HTuple& ScaleFac)
HImage HImage::SimCaltab(const HTuple& CalTabDescrFile, const HTuple& CameraParam, const HTuple& CaltabPose, const HTuple& GrayBackground, const HTuple& GrayCaltab, const HTuple& GrayMarks, const HTuple& ScaleFac)
void SimCaltab(HObject* SimImage, const HTuple& CalTabDescrFile, const HTuple& CameraParam, const HTuple& CaltabPose, const HTuple& GrayBackground, const HTuple& GrayCaltab, const HTuple& GrayMarks, const HTuple& ScaleFac)
void HImage::SimCaltab(const HString& CalTabDescrFile, const HTuple& CameraParam, const HPose& CaltabPose, Hlong GrayBackground, Hlong GrayCaltab, Hlong GrayMarks, double ScaleFac)
void HImage::SimCaltab(const char* CalTabDescrFile, const HTuple& CameraParam, const HPose& CaltabPose, Hlong GrayBackground, Hlong GrayCaltab, Hlong GrayMarks, double ScaleFac)
void HOperatorSetX.SimCaltab(
[out] IHUntypedObjectX** SimImage, [in] VARIANT CalTabDescrFile, [in] VARIANT CameraParam, [in] VARIANT CaltabPose, [in] VARIANT GrayBackground, [in] VARIANT GrayCaltab, [in] VARIANT GrayMarks, [in] VARIANT ScaleFac)
void HImageX.SimCaltab(
[in] BSTR CalTabDescrFile, [in] VARIANT CameraParam, [in] VARIANT CaltabPose, [in] Hlong GrayBackground, [in] Hlong GrayCaltab, [in] Hlong GrayMarks, [in] double ScaleFac)
static void HOperatorSet.SimCaltab(out HObject simImage, HTuple calTabDescrFile, HTuple cameraParam, HTuple caltabPose, HTuple grayBackground, HTuple grayCaltab, HTuple grayMarks, HTuple scaleFac)
void HImage.SimCaltab(string calTabDescrFile, HTuple cameraParam, HPose caltabPose, int grayBackground, int grayCaltab, int grayMarks, double scaleFac)
sim_caltabsim_caltabSimCaltabsim_caltabSimCaltabSimCaltab is used to generate a simulated calibration
image. The calibration plate description is read from the file
CalTabDescrFileCalTabDescrFileCalTabDescrFileCalTabDescrFileCalTabDescrFilecalTabDescrFile and will be projected into the image plane
using the given camera parameters (internal camera parameters
CameraParamCameraParamCameraParamCameraParamCameraParamcameraParam and external camera parameters
CaltabPoseCaltabPoseCaltabPoseCaltabPoseCaltabPosecaltabPose), see also project_3d_pointproject_3d_pointProject3dPointproject_3d_pointProject3dPointProject3dPoint.
In the simulated image only the calibration plate is shown. The
image background is set to the gray value GrayBackgroundGrayBackgroundGrayBackgroundGrayBackgroundGrayBackgroundgrayBackground,
the calibration plate background is set to GrayCaltabGrayCaltabGrayCaltabGrayCaltabGrayCaltabgrayCaltab, and
the calibration marks are set to the gray value GrayMarksGrayMarksGrayMarksGrayMarksGrayMarksgrayMarks.
The parameter ScaleFacScaleFacScaleFacScaleFacScaleFacscaleFac influences the number of supporting
points to approximate the elliptic contours of the calibration
marks, see also disp_caltabdisp_caltabDispCaltabdisp_caltabDispCaltabDispCaltab. 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 GrayMarksGrayMarksGrayMarksGrayMarksGrayMarksgrayMarks and
GrayCaltabGrayCaltabGrayCaltabGrayCaltabGrayCaltabgrayCaltab dependent on the proportion Inside/Outside.
By applying the operator sim_caltabsim_caltabSimCaltabsim_caltabSimCaltabSimCaltab you can generate
synthetic calibration images (with known camera parameters!) to test
the quality of the calibration algorithm (see
calibrate_camerascalibrate_camerasCalibrateCamerascalibrate_camerasCalibrateCamerasCalibrateCameras, or camera_calibrationcamera_calibrationCameraCalibrationcamera_calibrationCameraCalibrationCameraCalibration).
- Multithreading type: mutually exclusive (runs in parallel with other non-exclusive operators, but not with itself).
- Multithreading scope: global (may be called from any thread).
- Processed without parallelization.
Simulated calibration image.
File name of the calibration plate description.
Default value:
'caltab.descr'
"caltab.descr"
"caltab.descr"
"caltab.descr"
"caltab.descr"
"caltab.descr"
List of values: 'caltab.descr'"caltab.descr""caltab.descr""caltab.descr""caltab.descr""caltab.descr", 'caltab_100mm.descr'"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_10mm.descr", 'caltab_200mm.descr'"caltab_200mm.descr""caltab_200mm.descr""caltab_200mm.descr""caltab_200mm.descr""caltab_200mm.descr", 'caltab_30mm.descr'"caltab_30mm.descr""caltab_30mm.descr""caltab_30mm.descr""caltab_30mm.descr""caltab_30mm.descr"
File extension: .descr
Internal camera parameters.
Number of elements: CameraParam == 8 || CameraParam == 11 || CameraParam == 12
External camera parameters (3D pose of the calibration
plate in camera coordinates).
Number of elements: 7
Gray value of image background.
Default value: 128
Suggested values: 0, 32, 64, 96, 128, 160
Restriction: 0 <= GrayBackground <= 255
Gray value of calibration plate.
Default value: 224
Suggested values: 144, 160, 176, 192, 208, 224, 240
Restriction: 0 <= GrayCaltab <= 255
Gray value of calibration marks.
Default value: 80
Suggested values: 16, 32, 48, 64, 80, 96, 112
Restriction: 0 <= GrayMarks <= 255
Scaling factor to reduce oversampling.
Default value: 1.0
Suggested values: 1.0, 0.5, 0.25, 0.125
Recommended increment: 0.05
Restriction: 1.0 >= ScaleFac
* read calibration image
read_image(Image1, 'calib-01')
* find calibration pattern
find_caltab(Image1, Caltab1, 'caltab.descr', 3, 112, 5)
* find calibration marks and initial pose
StartCamPar := [Focus, Kappa, Sx, Sy, Cx, Cy, ImageWidth, ImageHeight]
find_marks_and_pose(Image1, Caltab1, 'caltab.descr', StartCamPar, \
128 ,10, 18, 0.9, 15.0, 100.0, RCoord1, CCoord1, \
StartPose1)
* read 3D positions of calibration marks
caltab_points('caltab.descr', NX, NY, NZ)
* camera calibration
camera_calibration(NX, NY, NZ, RCoord1, CCoord1, StartCamPar, \
StartPose1, 11, CameraParam, FinalPose, Errors)
* simulate calibration image
sim_caltab(Image1Sim, 'caltab.descr', CameraParam, FinalPose, 128, \
224, 80, 1)
* read calibration image
read_image(Image1, 'calib-01')
* find calibration pattern
find_caltab(Image1, Caltab1, 'caltab.descr', 3, 112, 5)
* find calibration marks and initial pose
StartCamPar := [Focus, Kappa, Sx, Sy, Cx, Cy, ImageWidth, ImageHeight]
find_marks_and_pose(Image1, Caltab1, 'caltab.descr', StartCamPar, \
128 ,10, 18, 0.9, 15.0, 100.0, RCoord1, CCoord1, \
StartPose1)
* read 3D positions of calibration marks
caltab_points('caltab.descr', NX, NY, NZ)
* camera calibration
camera_calibration(NX, NY, NZ, RCoord1, CCoord1, StartCamPar, \
StartPose1, 11, CameraParam, FinalPose, Errors)
* simulate calibration image
sim_caltab(Image1Sim, 'caltab.descr', CameraParam, FinalPose, 128, \
224, 80, 1)
* read calibration image
read_image(Image1, 'calib-01')
* find calibration pattern
find_caltab(Image1, Caltab1, 'caltab.descr', 3, 112, 5)
* find calibration marks and initial pose
StartCamPar := [Focus, Kappa, Sx, Sy, Cx, Cy, ImageWidth, ImageHeight]
find_marks_and_pose(Image1, Caltab1, 'caltab.descr', StartCamPar, \
128 ,10, 18, 0.9, 15.0, 100.0, RCoord1, CCoord1, \
StartPose1)
* read 3D positions of calibration marks
caltab_points('caltab.descr', NX, NY, NZ)
* camera calibration
camera_calibration(NX, NY, NZ, RCoord1, CCoord1, StartCamPar, \
StartPose1, 11, CameraParam, FinalPose, Errors)
* simulate calibration image
sim_caltab(Image1Sim, 'caltab.descr', CameraParam, FinalPose, 128, \
224, 80, 1)
HTuple StartCamPar, NX, NY, NZ;
HTuple RCoord1, CCoord1, StartPose1;
HTuple StartPose, RCoords, CCoords;
HTuple CameraParam, FinalPose, Errors;
// read calibration image
HImage Image1("calib-01");
// find calibration pattern
HRegion Caltab1 = Image1.FindCaltab("caltab.descr", 3, 112, 5);
// find calibration marks and initial pose
StartCamPar[7] = 576; // ImageHeight
StartCamPar[6] = 768; // ImageWidth
StartCamPar[5] = 288; // Cy
StartCamPar[4] = 384; // Cx
StartCamPar[3] = 0.000011; // Sy
StartCamPar[2] = 0.000011; // Sx
StartCamPar[1] = 0.0; // Kappa
StartCamPar[0] = 0.008; // Focus
RCoord1 = Image1.FindMarksAndPose(Caltab1, "caltab.descr", StartCamPar,
128, 10, &CCoord1, &StartPose);
// read 3D positions of calibration marks
caltab_points("caltab.descr", &NX, &NY, &NZ);
// camera calibration
camera_calibration(NX, NY, NZ, RCoord1, CCoord1, StartCamPar, StartPose,
11, &CameraParam, &FinalPose, &Errors);
HImage Image1Sim = HImage::SimCaltab("caltab.descr", CameraParam, FinalPose,
128, 224, 80, 1.0);
* read calibration image
read_image(Image1, 'calib-01')
* find calibration pattern
find_caltab(Image1, Caltab1, 'caltab.descr', 3, 112, 5)
* find calibration marks and initial pose
StartCamPar := [Focus, Kappa, Sx, Sy, Cx, Cy, ImageWidth, ImageHeight]
find_marks_and_pose(Image1, Caltab1, 'caltab.descr', StartCamPar, \
128 ,10, 18, 0.9, 15.0, 100.0, RCoord1, CCoord1, \
StartPose1)
* read 3D positions of calibration marks
caltab_points('caltab.descr', NX, NY, NZ)
* camera calibration
camera_calibration(NX, NY, NZ, RCoord1, CCoord1, StartCamPar, \
StartPose1, 11, CameraParam, FinalPose, Errors)
* simulate calibration image
sim_caltab(Image1Sim, 'caltab.descr', CameraParam, FinalPose, 128, \
224, 80, 1)
* read calibration image
read_image(Image1, 'calib-01')
* find calibration pattern
find_caltab(Image1, Caltab1, 'caltab.descr', 3, 112, 5)
* find calibration marks and initial pose
StartCamPar := [Focus, Kappa, Sx, Sy, Cx, Cy, ImageWidth, ImageHeight]
find_marks_and_pose(Image1, Caltab1, 'caltab.descr', StartCamPar, \
128 ,10, 18, 0.9, 15.0, 100.0, RCoord1, CCoord1, \
StartPose1)
* read 3D positions of calibration marks
caltab_points('caltab.descr', NX, NY, NZ)
* camera calibration
camera_calibration(NX, NY, NZ, RCoord1, CCoord1, StartCamPar, \
StartPose1, 11, CameraParam, FinalPose, Errors)
* simulate calibration image
sim_caltab(Image1Sim, 'caltab.descr', CameraParam, FinalPose, 128, \
224, 80, 1)
sim_caltabsim_caltabSimCaltabsim_caltabSimCaltabSimCaltab returns 2 (H_MSG_TRUE) if all parameter values are
correct. If necessary, an exception is raised.
camera_calibrationcamera_calibrationCameraCalibrationcamera_calibrationCameraCalibrationCameraCalibration,
find_marks_and_posefind_marks_and_poseFindMarksAndPosefind_marks_and_poseFindMarksAndPoseFindMarksAndPose,
read_poseread_poseReadPoseread_poseReadPoseReadPose,
read_cam_parread_cam_parReadCamParread_cam_parReadCamParReadCamPar,
hom_mat3d_to_posehom_mat3d_to_poseHomMat3dToPosehom_mat3d_to_poseHomMat3dToPoseHomMat3dToPose
find_caltabfind_caltabFindCaltabfind_caltabFindCaltabFindCaltab
find_caltabfind_caltabFindCaltabfind_caltabFindCaltabFindCaltab,
find_marks_and_posefind_marks_and_poseFindMarksAndPosefind_marks_and_poseFindMarksAndPoseFindMarksAndPose,
camera_calibrationcamera_calibrationCameraCalibrationcamera_calibrationCameraCalibrationCameraCalibration,
disp_caltabdisp_caltabDispCaltabdisp_caltabDispCaltabDispCaltab,
create_posecreate_poseCreatePosecreate_poseCreatePoseCreatePose,
hom_mat3d_to_posehom_mat3d_to_poseHomMat3dToPosehom_mat3d_to_poseHomMat3dToPoseHomMat3dToPose,
project_3d_pointproject_3d_pointProject3dPointproject_3d_pointProject3dPointProject3dPoint,
gen_caltabgen_caltabGenCaltabgen_caltabGenCaltabGenCaltab
Calibration