ClassesClassesClassesClasses | | | | Operators

find_calib_objectT_find_calib_objectFindCalibObjectfind_calib_objectFindCalibObjectFindCalibObject (Operator)

Name

find_calib_objectT_find_calib_objectFindCalibObjectfind_calib_objectFindCalibObjectFindCalibObject — Find the standard calibration plate and set the extracted points and contours in a calibration data model.

Signature

find_calib_object(Image : : CalibDataID, CameraIdx, CalibObjIdx, CalibObjPoseIdx, GenParamName, GenParamValue : )

Herror T_find_calib_object(const Hobject Image, const Htuple CalibDataID, const Htuple CameraIdx, const Htuple CalibObjIdx, const Htuple CalibObjPoseIdx, const Htuple GenParamName, const Htuple GenParamValue)

Herror find_calib_object(Hobject Image, const HTuple& CalibDataID, const HTuple& CameraIdx, const HTuple& CalibObjIdx, const HTuple& CalibObjPoseIdx, const HTuple& GenParamName, const HTuple& GenParamValue)

void HCalibData::FindCalibObject(const HImage& Image, const HTuple& CameraIdx, const HTuple& CalibObjIdx, const HTuple& CalibObjPoseIdx, const HTuple& GenParamName, const HTuple& GenParamValue) const

void FindCalibObject(const HObject& Image, const HTuple& CalibDataID, const HTuple& CameraIdx, const HTuple& CalibObjIdx, const HTuple& CalibObjPoseIdx, const HTuple& GenParamName, const HTuple& GenParamValue)

void HCalibData::FindCalibObject(const HImage& Image, Hlong CameraIdx, Hlong CalibObjIdx, Hlong CalibObjPoseIdx, const HTuple& GenParamName, const HTuple& GenParamValue) const

void HOperatorSetX.FindCalibObject(
[in] IHUntypedObjectX* Image, [in] VARIANT CalibDataID, [in] VARIANT CameraIdx, [in] VARIANT CalibObjIdx, [in] VARIANT CalibObjPoseIdx, [in] VARIANT GenParamName, [in] VARIANT GenParamValue)

void HCalibDataX.FindCalibObject(
[in] IHImageX* Image, [in] Hlong CameraIdx, [in] Hlong CalibObjIdx, [in] Hlong CalibObjPoseIdx, [in] VARIANT GenParamName, [in] VARIANT GenParamValue)

static void HOperatorSet.FindCalibObject(HObject image, HTuple calibDataID, HTuple cameraIdx, HTuple calibObjIdx, HTuple calibObjPoseIdx, HTuple genParamName, HTuple genParamValue)

void HCalibData.FindCalibObject(HImage image, int cameraIdx, int calibObjIdx, int calibObjPoseIdx, HTuple genParamName, HTuple genParamValue)

Description

find_calib_objectfind_calib_objectFindCalibObjectfind_calib_objectFindCalibObjectFindCalibObject searches in ImageImageImageImageImageimage for a standard calibration plate corresponding to the description of the calibration object with the index CalibObjIdxCalibObjIdxCalibObjIdxCalibObjIdxCalibObjIdxcalibObjIdx from the calibration data model CalibDataIDCalibDataIDCalibDataIDCalibDataIDCalibDataIDcalibDataID. If a plate is found, find_calib_objectfind_calib_objectFindCalibObjectfind_calib_objectFindCalibObjectFindCalibObject extracts the centers and the contours of its marks and estimates the pose of the plate relative to the observing camera CameraIdxCameraIdxCameraIdxCameraIdxCameraIdxcameraIdx. Finally, all collected observation data are stored in the calibration data model for the calibration object pose CalibObjPoseIdxCalibObjPoseIdxCalibObjPoseIdxCalibObjPoseIdxCalibObjPoseIdxcalibObjPoseIdx.

find_calib_objectfind_calib_objectFindCalibObjectfind_calib_objectFindCalibObjectFindCalibObject is used to collect observations in a calibration data model (see set_calib_data_observ_pointsset_calib_data_observ_pointsSetCalibDataObservPointsset_calib_data_observ_pointsSetCalibDataObservPointsSetCalibDataObservPoints for description of calibration data observations) and it essentially encapsulates the sequence of three operator calls: find_caltabfind_caltabFindCaltabfind_caltabFindCaltabFindCaltab, find_marks_and_posefind_marks_and_poseFindMarksAndPosefind_marks_and_poseFindMarksAndPoseFindMarksAndPose and set_calib_data_observ_pointsset_calib_data_observ_pointsSetCalibDataObservPointsset_calib_data_observ_pointsSetCalibDataObservPointsSetCalibDataObservPoints. Besides encapsulating a great deal of parameter settings, it stores additional observation data compared to set_calib_data_observ_pointsset_calib_data_observ_pointsSetCalibDataObservPointsset_calib_data_observ_pointsSetCalibDataObservPointsSetCalibDataObservPoints, e.g., the calibration plate contour and the calibration marks' contours. Note that find_calib_objectfind_calib_objectFindCalibObjectfind_calib_objectFindCalibObjectFindCalibObject needs the full description of a standard calibration plate, i.e., a description file name must be passed to set_calib_data_calib_objectset_calib_data_calib_objectSetCalibDataCalibObjectset_calib_data_calib_objectSetCalibDataCalibObjectSetCalibDataCalibObject when specifying the CalibObjIdxCalibObjIdxCalibObjIdxCalibObjIdxCalibObjIdxcalibObjIdx-th calibration object. Otherwise, find_calib_objectfind_calib_objectFindCalibObjectfind_calib_objectFindCalibObjectFindCalibObject returns an error. Respectively, if a calibration object that is no standard calibration plate was specified by passing a tuple of mark coordinates to set_calib_data_calib_objectset_calib_data_calib_objectSetCalibDataCalibObjectset_calib_data_calib_objectSetCalibDataCalibObjectSetCalibDataCalibObject, only set_calib_data_observ_pointsset_calib_data_observ_pointsSetCalibDataObservPointsset_calib_data_observ_pointsSetCalibDataObservPointsSetCalibDataObservPoints can be used to collect observation data for the poses of this calibration object.

By setting GenParamNameGenParamNameGenParamNameGenParamNameGenParamNamegenParamName to one of the following values, the following additional parameters can be set in GenParamValueGenParamValueGenParamValueGenParamValueGenParamValuegenParamValue:

'gap_tolerance'"gap_tolerance""gap_tolerance""gap_tolerance""gap_tolerance""gap_tolerance":

Tolerance factor for gaps between the marks. If the marks appear closer to each other than expected, you might set 'gap_tolerance'"gap_tolerance""gap_tolerance""gap_tolerance""gap_tolerance""gap_tolerance" < 1.0 to avoid disturbing patterns outside the calibration plate to be associated with the calibration plate. This can typically happen if the plate is strongly tilted and positioned in front of a background that exposes mark-like patterns. If the distances between single marks vary in a wide range, e.g., if the calibration plate appears with strong perspective distortion in the image, you might set 'gap_tolerance'"gap_tolerance""gap_tolerance""gap_tolerance""gap_tolerance""gap_tolerance" > 1.0 to enforce the marks grouping (see also find_caltabfind_caltabFindCaltabfind_caltabFindCaltabFindCaltab).

Suggested values: 0.75, 0.9, 1.0 (default), 1.1, 1.2, 1.5

'alpha'"alpha""alpha""alpha""alpha""alpha":

Smoothing factor for the extraction of the mark contours. The use of 'alpha'"alpha""alpha""alpha""alpha""alpha" < 0.9 might be required for images that are out of focus, whereas 'alpha'"alpha""alpha""alpha""alpha""alpha" > 0.9 might be required for images which are sharp, but expose higher levels of noise. (see find_marks_and_posefind_marks_and_poseFindMarksAndPosefind_marks_and_poseFindMarksAndPoseFindMarksAndPose for more details)

Suggested values: 0.5, 0.7, 0.9 (default), 1.0, 1.2, 1.5

'max_diam_marks'"max_diam_marks""max_diam_marks""max_diam_marks""max_diam_marks""max_diam_marks":

Maximum expected diameter of the marks (needed internally by find_marks_and_posefind_marks_and_poseFindMarksAndPosefind_marks_and_poseFindMarksAndPoseFindMarksAndPose). By default, this value is estimated by the preceeding internal call to find_caltabfind_caltabFindCaltabfind_caltabFindCaltabFindCaltab. However, if the estimation is erroneous for no obvious reason or the internal call to find_caltabfind_caltabFindCaltabfind_caltabFindCaltabFindCaltab fails or is simply skipped (see 'skip_find_caltab'"skip_find_caltab""skip_find_caltab""skip_find_caltab""skip_find_caltab""skip_find_caltab" below), you might have to adjust this value.

Suggested values: 50.0, 100.0, 150.0, 200.0, 300.0

'skip_find_caltab'"skip_find_caltab""skip_find_caltab""skip_find_caltab""skip_find_caltab""skip_find_caltab":

Skip the internal call to find_caltabfind_caltabFindCaltabfind_caltabFindCaltabFindCaltab. If activated, only the domain of ImageImageImageImageImageimage reduces the search area for the internal call of find_marks_and_posefind_marks_and_poseFindMarksAndPosefind_marks_and_poseFindMarksAndPoseFindMarksAndPose. Thus, a user defined calibration plate region can be incorporated by setting 'skip_find_caltab'"skip_find_caltab""skip_find_caltab""skip_find_caltab""skip_find_caltab""skip_find_caltab"='false'"false""false""false""false""false" and reducing the ImageImageImageImageImageimage domain to the user region.

List of values: 'false'"false""false""false""false""false" (default), 'true'"true""true""true""true""true"

It is recommended to use find_calib_objectfind_calib_objectFindCalibObjectfind_calib_objectFindCalibObjectFindCalibObject instead of set_calib_data_observ_pointsset_calib_data_observ_pointsSetCalibDataObservPointsset_calib_data_observ_pointsSetCalibDataObservPointsSetCalibDataObservPoints where possible, since the contour information, which it stores in the calibration data model, enables a more precise calibration procedure with calibrate_camerascalibrate_camerasCalibrateCamerascalibrate_camerasCalibrateCamerasCalibrateCameras.

After a successful call to find_calib_objectfind_calib_objectFindCalibObjectfind_calib_objectFindCalibObjectFindCalibObject, the extracted points can be queried by get_calib_data_observ_pointsget_calib_data_observ_pointsGetCalibDataObservPointsget_calib_data_observ_pointsGetCalibDataObservPointsGetCalibDataObservPoints and the extracted contours can be accessed by get_calib_data_observ_contoursget_calib_data_observ_contoursGetCalibDataObservContoursget_calib_data_observ_contoursGetCalibDataObservContoursGetCalibDataObservContours.

Attention

A camera calibration data model CalibDataID cannot be shared between two or more user's threads. Different camera calibration data models can be used independently and safely in different threads.

Parallelization

Parameters

ImageImageImageImageImageimage (input_object)  singlechannelimage objectHImageHImageHImageHImageXHobject (byte / uint2)

Input image.

CalibDataIDCalibDataIDCalibDataIDCalibDataIDCalibDataIDcalibDataID (input_control)  calib_data HCalibData, HTupleHTupleHCalibData, HTupleHCalibDataX, VARIANTHtuple (integer) (IntPtr) (Hlong) (Hlong) (Hlong) (Hlong)

Handle of a calibration data model.

CameraIdxCameraIdxCameraIdxCameraIdxCameraIdxcameraIdx (input_control)  number HTupleHTupleHTupleVARIANTHtuple (integer) (int / long) (Hlong) (Hlong) (Hlong) (Hlong)

Index of the observing camera.

Default value: 0

Suggested values: 0, 1, 2

CalibObjIdxCalibObjIdxCalibObjIdxCalibObjIdxCalibObjIdxcalibObjIdx (input_control)  number HTupleHTupleHTupleVARIANTHtuple (integer) (int / long) (Hlong) (Hlong) (Hlong) (Hlong)

Index of the calibration object.

Default value: 0

Suggested values: 0, 1, 2

CalibObjPoseIdxCalibObjPoseIdxCalibObjPoseIdxCalibObjPoseIdxCalibObjPoseIdxcalibObjPoseIdx (input_control)  number HTupleHTupleHTupleVARIANTHtuple (integer) (int / long) (Hlong) (Hlong) (Hlong) (Hlong)

Index of the observed calibration object.

Default value: 0

Suggested values: 0, 1, 2

Restriction: CalibObjPoseIdx >= 0

GenParamNameGenParamNameGenParamNameGenParamNameGenParamNamegenParamName (input_control)  attribute.name-array HTupleHTupleHTupleVARIANTHtuple (string) (string) (HString) (char*) (BSTR) (char*)

Names of the generic parameters to be set.

Default value: []

List of values: 'alpha'"alpha""alpha""alpha""alpha""alpha", 'gap_tolerance'"gap_tolerance""gap_tolerance""gap_tolerance""gap_tolerance""gap_tolerance", 'max_diam_marks'"max_diam_marks""max_diam_marks""max_diam_marks""max_diam_marks""max_diam_marks", 'skip_find_caltab'"skip_find_caltab""skip_find_caltab""skip_find_caltab""skip_find_caltab""skip_find_caltab"

GenParamValueGenParamValueGenParamValueGenParamValueGenParamValuegenParamValue (input_control)  attribute.value-array HTupleHTupleHTupleVARIANTHtuple (string / real / integer) (string / double / int / long) (HString / double / Hlong) (char* / double / Hlong) (BSTR / double / Hlong) (char* / double / Hlong)

Values of the generic parameters to be set.

Default value: []

Suggested values: 0.5, 0.9, 1.0, 1.2, 1.5, 2.0, 'true'"true""true""true""true""true", 'false'"false""false""false""false""false"

Possible Predecessors

read_imageread_imageReadImageread_imageReadImageReadImage, find_marks_and_posefind_marks_and_poseFindMarksAndPosefind_marks_and_poseFindMarksAndPoseFindMarksAndPose, set_calib_data_cam_paramset_calib_data_cam_paramSetCalibDataCamParamset_calib_data_cam_paramSetCalibDataCamParamSetCalibDataCamParam, set_calib_data_calib_objectset_calib_data_calib_objectSetCalibDataCalibObjectset_calib_data_calib_objectSetCalibDataCalibObjectSetCalibDataCalibObject

Possible Successors

set_calib_dataset_calib_dataSetCalibDataset_calib_dataSetCalibDataSetCalibData, calibrate_camerascalibrate_camerasCalibrateCamerascalibrate_camerasCalibrateCamerasCalibrateCameras

Alternatives

find_caltabfind_caltabFindCaltabfind_caltabFindCaltabFindCaltab, find_marks_and_posefind_marks_and_poseFindMarksAndPosefind_marks_and_poseFindMarksAndPoseFindMarksAndPose, set_calib_data_observ_pointsset_calib_data_observ_pointsSetCalibDataObservPointsset_calib_data_observ_pointsSetCalibDataObservPointsSetCalibDataObservPoints

Module

Calibration


ClassesClassesClassesClasses | | | | Operators