calibrateCameraAsync function

Future<(double, Mat, Mat, Mat, Mat)> calibrateCameraAsync(
  1. Contours3f objectPoints,
  2. Contours2f imagePoints,
  3. (int, int) imageSize,
  4. InputOutputArray cameraMatrix,
  5. InputOutputArray distCoeffs, {
  6. Mat? rvecs,
  7. Mat? tvecs,
  8. int flags = 0,
  9. (int, int, double) criteria = (TERM_COUNT + TERM_EPS, 30, 1e-4),
})

Implementation

Future<(double rmsErr, Mat cameraMatrix, Mat distCoeffs, Mat rvecs, Mat tvecs)> calibrateCameraAsync(
  Contours3f objectPoints,
  Contours2f imagePoints,
  (int, int) imageSize,
  InputOutputArray cameraMatrix,
  InputOutputArray distCoeffs, {
  Mat? rvecs,
  Mat? tvecs,
  int flags = 0,
  (int type, int count, double eps) criteria = (TERM_COUNT + TERM_EPS, 30, 1e-4),
}) async {
  rvecs ??= Mat.empty();
  tvecs ??= Mat.empty();
  final cRmsErr = calloc<ffi.Double>();

  return cvRunAsync0(
      (callback) => ccalib3d.cv_calibrateCamera(
            objectPoints.ref,
            imagePoints.ref,
            imageSize.cvd.ref,
            cameraMatrix.ref,
            distCoeffs.ref,
            rvecs!.ref,
            tvecs!.ref,
            flags,
            criteria.cvd.ref,
            cRmsErr,
            callback,
          ), (c) {
    final rmsErr = cRmsErr.value;
    calloc.free(cRmsErr);
    return c.complete((rmsErr, cameraMatrix, distCoeffs, rvecs!, tvecs!));
  });
}