create_calib_dataT_create_calib_dataCreateCalibDataCreateCalibDatacreate_calib_data (算子)
名称
create_calib_dataT_create_calib_dataCreateCalibDataCreateCalibDatacreate_calib_data — 创建 HALCON 标定数据模型。
签名
void CreateCalibData(const HTuple& CalibSetup, const HTuple& NumCameras, const HTuple& NumCalibObjects, HTuple* CalibDataID)
void HCalibData::HCalibData(const HString& CalibSetup, Hlong NumCameras, Hlong NumCalibObjects)
void HCalibData::HCalibData(const char* CalibSetup, Hlong NumCameras, Hlong NumCalibObjects)
void HCalibData::HCalibData(const wchar_t* CalibSetup, Hlong NumCameras, Hlong NumCalibObjects)
(
Windows only)
void HCalibData::CreateCalibData(const HString& CalibSetup, Hlong NumCameras, Hlong NumCalibObjects)
void HCalibData::CreateCalibData(const char* CalibSetup, Hlong NumCameras, Hlong NumCalibObjects)
void HCalibData::CreateCalibData(const wchar_t* CalibSetup, Hlong NumCameras, Hlong NumCalibObjects)
(
Windows only)
描述
算子 create_calib_datacreate_calib_dataCreateCalibDataCreateCalibDataCreateCalibDatacreate_calib_data creates a generic calibration
data model that stores
-
the description of a camera calibration setup,
-
settings for the calibration process,
-
the calibration data, and
-
the results of the camera calibration or the hand-eye calibration.
In the parameter CalibSetupCalibSetupCalibSetupCalibSetupcalibSetupcalib_setup, you specify the calibration setup type.
Currently, five types are supported. A model of the type
'calibration_object'"calibration_object""calibration_object""calibration_object""calibration_object""calibration_object" is used to calibrate the internal camera
parameters and the camera poses of one or more cameras based on the metric
information extracted from observations of calibration objects.
A model of type 'hand_eye_moving_cam'"hand_eye_moving_cam""hand_eye_moving_cam""hand_eye_moving_cam""hand_eye_moving_cam""hand_eye_moving_cam",
'hand_eye_stationary_cam'"hand_eye_stationary_cam""hand_eye_stationary_cam""hand_eye_stationary_cam""hand_eye_stationary_cam""hand_eye_stationary_cam", 'hand_eye_scara_moving_cam'"hand_eye_scara_moving_cam""hand_eye_scara_moving_cam""hand_eye_scara_moving_cam""hand_eye_scara_moving_cam""hand_eye_scara_moving_cam", or
'hand_eye_scara_stationary_cam'"hand_eye_scara_stationary_cam""hand_eye_scara_stationary_cam""hand_eye_scara_stationary_cam""hand_eye_scara_stationary_cam""hand_eye_scara_stationary_cam" is used to perform a hand-eye
calibration based on observations of a calibration object and
corresponding poses of a robot tool in the robot base coordinate system.
The latter four model types on the one hand distinguish whether the camera
or the calibration object is moved by the robot and on the other hand
distinguish whether an articulated robot or a SCARA robot is calibrated.
The arm of an articulated robot has three rotary
joints typically covering 6 degrees of freedom (3 translations and 3
rotations). SCARA robots have two parallel rotary joints and one parallel
prismatic joint covering only 4 degrees of freedom (3 translations and 1
rotation). Loosely speaking, an articulated robot is able to tilt its
end effector while a SCARA robot is not.
NumCamerasNumCamerasNumCamerasNumCamerasnumCamerasnum_cameras specifies the number of cameras that are
calibrated simultaneously in the setup. NumCalibObjectsNumCalibObjectsNumCalibObjectsNumCalibObjectsnumCalibObjectsnum_calib_objects
specifies the number of calibration objects observed by the cameras.
Please note that for camera calibrations with line scan cameras with
perspective lenses only a single calibration object is allowed
(NumCalibObjectsNumCalibObjectsNumCalibObjectsNumCalibObjectsnumCalibObjectsnum_calib_objects=1). For hand-eye calibrations, only two
setups are currently supported: either one area scan projective
camera and one calibration object (NumCamerasNumCamerasNumCamerasNumCamerasnumCamerasnum_cameras=1,
NumCalibObjectsNumCalibObjectsNumCalibObjectsNumCalibObjectsnumCalibObjectsnum_calib_objects=1) or a general sensor with no calibration
object (NumCamerasNumCamerasNumCamerasNumCamerasnumCamerasnum_cameras=0, NumCalibObjectsNumCalibObjectsNumCalibObjectsNumCalibObjectsnumCalibObjectsnum_calib_objects=0).
Attention:
The four hand-eye calibration models do not support
telecentric cameras.
CalibDataIDCalibDataIDCalibDataIDCalibDataIDcalibDataIDcalib_data_id returns a handle of the new calibration data
model. You pass this handle to other operators to collect
the description of the camera setup, the calibration settings, and the
calibration data. For camera calibrations, you pass it to
calibrate_camerascalibrate_camerasCalibrateCamerasCalibrateCamerasCalibrateCamerascalibrate_cameras, which performs the actual camera calibration
and stores the calibration results in the calibration data model.
For a detailed description of the preparation process, please refer to
the chapter 标定.
For hand-eye calibrations, you pass it to calibrate_hand_eyecalibrate_hand_eyeCalibrateHandEyeCalibrateHandEyeCalibrateHandEyecalibrate_hand_eye, which
performs the actual hand-eye calibration and stores the calibration results
in the calibration data model. For a detailed description of the
preparation process, please refer to the operator calibrate_hand_eyecalibrate_hand_eyeCalibrateHandEyeCalibrateHandEyeCalibrateHandEyecalibrate_hand_eye。
执行信息
- 多线程类型:可重入(与非独占算子并行运行)。
- 多线程作用域:全局(可从任何线程调用)。
- 未采用并行化处理。
此算子返回一个句柄。请注意,即使该句柄被用作特定算子的输入参数,这些算子仍可能改变此句柄类型的实例状态。
参数
CalibSetupCalibSetupCalibSetupCalibSetupcalibSetupcalib_setup (输入控制) string → HTuplestrHTupleHtuple (string) (string) (HString) (char*)
Type of the calibration setup.
默认值:
'calibration_object'
"calibration_object"
"calibration_object"
"calibration_object"
"calibration_object"
"calibration_object"
值列表:
'calibration_object'"calibration_object""calibration_object""calibration_object""calibration_object""calibration_object", 'hand_eye_moving_cam'"hand_eye_moving_cam""hand_eye_moving_cam""hand_eye_moving_cam""hand_eye_moving_cam""hand_eye_moving_cam", 'hand_eye_scara_moving_cam'"hand_eye_scara_moving_cam""hand_eye_scara_moving_cam""hand_eye_scara_moving_cam""hand_eye_scara_moving_cam""hand_eye_scara_moving_cam", 'hand_eye_scara_stationary_cam'"hand_eye_scara_stationary_cam""hand_eye_scara_stationary_cam""hand_eye_scara_stationary_cam""hand_eye_scara_stationary_cam""hand_eye_scara_stationary_cam", 'hand_eye_stationary_cam'"hand_eye_stationary_cam""hand_eye_stationary_cam""hand_eye_stationary_cam""hand_eye_stationary_cam""hand_eye_stationary_cam"
NumCamerasNumCamerasNumCamerasNumCamerasnumCamerasnum_cameras (输入控制) number → HTupleintHTupleHtuple (integer) (int / long) (Hlong) (Hlong)
Number of cameras in the calibration setup.
默认值:
1
限制:
NumCameras >= 0
NumCalibObjectsNumCalibObjectsNumCalibObjectsNumCalibObjectsnumCalibObjectsnum_calib_objects (输入控制) number → HTupleintHTupleHtuple (integer) (int / long) (Hlong) (Hlong)
Number of calibration objects.
默认值:
1
限制:
NumCalibObjects >= 0
CalibDataIDCalibDataIDCalibDataIDCalibDataIDcalibDataIDcalib_data_id (输出控制) calib_data → HCalibData, HTupleHHandleHTupleHtuple (handle) (IntPtr) (HHandle) (handle)
Handle of the created calibration data model.
可能的后继
set_calib_data_cam_paramset_calib_data_cam_paramSetCalibDataCamParamSetCalibDataCamParamSetCalibDataCamParamset_calib_data_cam_param,
set_calib_data_calib_objectset_calib_data_calib_objectSetCalibDataCalibObjectSetCalibDataCalibObjectSetCalibDataCalibObjectset_calib_data_calib_object
模块
标定