Reuse the internal camera parameters (from the supplied
camera calibration results of the remote cameras) to compute the
CogHandEyeCalibrationRemoteCamerasResults for the remote cameras based on
the supplied hand-eye calibration results of the primary cameras, the corresponded
point pairs (from the same calibration plate) for the primary cameras and the remote cameras,
pelrects of the remote cameras, using the current parameter settings.
Namespace: Cognex.VisionPro.CalibFixAssembly: Cognex.VisionPro.CalibFixPlus (in Cognex.VisionPro.CalibFixPlus.dll) Version: 65.1.0.0
Syntax
public CogHandEyeCalibrationRemoteCameraResults Execute( CogHandEyeCalibrationResults primaryCamerasCalibResults, CogFeatureCrspsMCameras primaryCamerasCrsps, Rectangle[] remoteCamerasPelRects, CogFeatureCrspsMCameras remoteCamerasCrsps, CogTransform2DCameraCalibration[] remoteCameraRaw2DFromCamera2Ds )
Parameters
- primaryCamerasCalibResults
- Type: Cognex.VisionPro.CalibFix CogHandEyeCalibrationResults
The primary cameras' hand-eye calibration results.
- primaryCamerasCrsps
- Type: Cognex.VisionPro CogFeatureCrspsMCameras
The corresponded point pairs for the primary cameras.
- remoteCamerasPelRects
- Type: System.Drawing Rectangle
The pelrects of the remote cameras, used to extract the corresponded point pairs. There should be one pelrect for each camera. There is no relationship between the pelrects of two separate cameras. It is used to define the camera coordinate system (i.e. Camera2D) to be at the center of the pelrect.
- remoteCamerasCrsps
- Type: Cognex.VisionPro CogFeatureCrspsMCameras
The corresponded point pairs for the remote cameras.
- remoteCameraRaw2DFromCamera2Ds
- Type: Cognex.VisionPro CogTransform2DCameraCalibration
The remote cameras' previously computed calibration results which are expected to have better accuracy (e.g., using calibration plate). The intrinsic parameters of input camera calibrations are kept during computing the hand-eye calibration, while the extrinsic parameter are recalculated based on the corresponded point pairs.
Return Value
Type: CogHandEyeCalibrationRemoteCameraResultsA CogHandEyeCalibrationRemoteCameraResults containing the results of the calibration, i.e. a CogHandEyeCalibrationRemoteCameraResult object for each remote camera.
Exceptions
| Exception | Condition |
|---|---|
| ArgumentNullException | If the primaryCamerasCalibResults argument is null. |
| ArgumentNullException | If the primaryCamerasCrsps argument is null. |
| ArgumentNullException | If the remoteCamerasPelRects argument is null. |
| ArgumentNullException | If the remoteCamerasCrsps argument is null. |
| ArgumentNullException | If the remoteCameraRaw2DFromCamera2Ds argument is null. |
| ArgumentNullException | The Raw2DFromCamera2D transform for any of the items in remoteCameraRaw2DFromCamera2Ds is null. |
| CogTimeoutExpiredException | If TimeoutEnabled is true and this method does not complete within Timeout milliseconds. |
| ArgumentException |
If any of the following is true:
|
| ArgumentException | If any Raw2D feature position in the remoteCamerasCrsps argument falls outside its corresponding pelrect. |
| ArgumentException | If the supplied remoteCameraRaw2DFromCamera2Ds is using a lens distortion model different from the one set in this calibrator. |
| ArgumentException | If the input data is degenerate. |
Remarks
The purpose of this overload is to support previously-calibrated remote cameras, and calibrating the camera extrinsic poses using potentially sparse feature correspondences.
Requires:
- Between the previous and current calibration, there should be no change to the cameras' intrinsic parameters, e.g. focal length, focus, aperture, lens unit, camera body.
- Between the previous and current calibration, the cameras' extrinsic parameters changes such as in-plane rotation and translation, are to be expected. Small changes to non-in-plane rotation and translation that cause changes in perspective are also allowed.
See Also