ClassesClassesClassesClasses | | | | Operators

query_calib_data_observ_indicesT_query_calib_data_observ_indicesQueryCalibDataObservIndicesquery_calib_data_observ_indicesQueryCalibDataObservIndicesQueryCalibDataObservIndices (Operator)


query_calib_data_observ_indicesT_query_calib_data_observ_indicesQueryCalibDataObservIndicesquery_calib_data_observ_indicesQueryCalibDataObservIndicesQueryCalibDataObservIndices — Query information about the relations between cameras, calibration objects, and calibration object poses.


query_calib_data_observ_indices( : : CalibDataID, ItemType, ItemIdx : Index1, Index2)

Herror T_query_calib_data_observ_indices(const Htuple CalibDataID, const Htuple ItemType, const Htuple ItemIdx, Htuple* Index1, Htuple* Index2)

Herror query_calib_data_observ_indices(const HTuple& CalibDataID, const HTuple& ItemType, const HTuple& ItemIdx, HTuple* Index1, HTuple* Index2)

HTuple HCalibData::QueryCalibDataObservIndices(const HTuple& ItemType, const HTuple& ItemIdx, HTuple* Index2) const

void QueryCalibDataObservIndices(const HTuple& CalibDataID, const HTuple& ItemType, const HTuple& ItemIdx, HTuple* Index1, HTuple* Index2)

HTuple HCalibData::QueryCalibDataObservIndices(const HString& ItemType, Hlong ItemIdx, HTuple* Index2) const

HTuple HCalibData::QueryCalibDataObservIndices(const char* ItemType, Hlong ItemIdx, HTuple* Index2) const

void HOperatorSetX.QueryCalibDataObservIndices(
[in] VARIANT CalibDataID, [in] VARIANT ItemType, [in] VARIANT ItemIdx, [out] VARIANT* Index1, [out] VARIANT* Index2)

VARIANT HCalibDataX.QueryCalibDataObservIndices(
[in] BSTR ItemType, [in] Hlong ItemIdx, [out] VARIANT* Index2)

static void HOperatorSet.QueryCalibDataObservIndices(HTuple calibDataID, HTuple itemType, HTuple itemIdx, out HTuple index1, out HTuple index2)

HTuple HCalibData.QueryCalibDataObservIndices(string itemType, int itemIdx, out HTuple index2)


A calibration data model (CalibDataIDCalibDataIDCalibDataIDCalibDataIDCalibDataIDcalibDataID) contains a collection of observations, which are added to the model by set_calib_data_observ_pointsset_calib_data_observ_pointsSetCalibDataObservPointsset_calib_data_observ_pointsSetCalibDataObservPointsSetCalibDataObservPoints. Each observation is associated to an observing camera, an observed calibration object, and a calibration object pose. With the operator query_calib_data_observ_indicesquery_calib_data_observ_indicesQueryCalibDataObservIndicesquery_calib_data_observ_indicesQueryCalibDataObservIndicesQueryCalibDataObservIndices, you can query observation indices associated to a camera or an calibration object, depending on the parameter ItemTypeItemTypeItemTypeItemTypeItemTypeitemType.

For ItemTypeItemTypeItemTypeItemTypeItemTypeitemType='camera'"camera""camera""camera""camera""camera", you must pass a valid camera index in ItemIdxItemIdxItemIdxItemIdxItemIdxitemIdx. Then, Index1Index1Index1Index1Index1index1 returns a list of calibration object indices and Index2Index2Index2Index2Index2index2 returns a list of pose indices. Each pair [Index1[I],Index2[I]] represents calibration object pose that are 'observed' by camera ItemIdxItemIdxItemIdxItemIdxItemIdxitemIdx.

For ItemTypeItemTypeItemTypeItemTypeItemTypeitemType='calib_obj'"calib_obj""calib_obj""calib_obj""calib_obj""calib_obj", you must specify a valid calibration object index in ItemIdxItemIdxItemIdxItemIdxItemIdxitemIdx. Then, Index1Index1Index1Index1Index1index1 returns a list of camera indices and Index2Index2Index2Index2Index2index2 returns a list of corresponding calibration object pose indices. Each pair [Index1[I],Index2[I]] denotes that camera Index1[I] is observing the Index2[I]th pose of calibration object ItemIdxItemIdxItemIdxItemIdxItemIdxitemIdx.

This operator is particularly suitable for accessing observation data of a calibration data model whose configuration is unknown at the moment of its usage (e.g., if it was just read from a file). As a special case, this operator can be used to get the precise list of poses of one calibration object (see the example).


This operator modifies the state of the following input parameter:

The value of this parameter may not be shared across multiple threads without external synchronization.


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

Handle of a calibration data model.

ItemTypeItemTypeItemTypeItemTypeItemTypeitemType (input_control)  string HTupleHTupleHTupleVARIANTHtuple (string) (string) (HString) (char*) (BSTR) (char*)

Kind of referred object.

Default value: 'camera' "camera" "camera" "camera" "camera" "camera"

List of values: 'calib_obj'"calib_obj""calib_obj""calib_obj""calib_obj""calib_obj", 'camera'"camera""camera""camera""camera""camera"

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

Camera index or calibration object index (depending on the selected ItemTypeItemTypeItemTypeItemTypeItemTypeitemType).

Default value: 0

Suggested values: 0, 1, 2

Index1Index1Index1Index1Index1index1 (output_control)  number-array HTupleHTupleHTupleVARIANTHtuple (integer) (int / long) (Hlong) (Hlong) (Hlong) (Hlong)

List of calibration object indices or list of camera indices (depending on ItemTypeItemTypeItemTypeItemTypeItemTypeitemType).

Index2Index2Index2Index2Index2index2 (output_control)  number-array HTupleHTupleHTupleVARIANTHtuple (integer) (int / long) (Hlong) (Hlong) (Hlong) (Hlong)

Calibration object numbers.

Example (HDevelop)

* Read a calibration model from a file
read_calib_data ('calib_data.ccd',CalibDataID)

* Get calibration object indices assigned to calibration object 0
query_calib_data_observ_indices (CalibDataID, 'calib_obj', 0, _, \
* CalibObjPoseIndices contains the list of pose indices of calibration
* object 0. In order to be stored in the model, each calibration object
* needs to be observed by at least one camera in the setup (a calibration
* object pose that is not observed by any camera cannot be stored in
* the model). Typically, a calibration object pose can be observed by more
* than one camera. Hence, some calibration object pose indices might appear
* repeatedly in CalibObjPoseIndices. We use tuple_sort and tuple_uniq to
* extract a unique list of calibration object pose indices for calibration
* object 0.
tuple_sort (CalibObjPoseIndices, CalibObjPoseIndices)
tuple_uniq (CalibObjPoseIndices, CalibObjPoseIndices)

* Get poses of calibration objects observed by camera 2
calibrate_cameras (CalibDataID, Error)
query_calib_data_observ_indices (CalibDataID, 'camera', 2, CalibObjIndices,\
for I := 0 to |CalibObjIndices|-1 by 1
  get_calib_data (CalibDataID, 'calib_obj_pose', \
                  [CalibObjIndices[I], CalibObjPoseIndices[I]], \
                  'pose', CalibObjPose)



ClassesClassesClassesClasses | | | | Operators