recoverPoseCameraMatrixAsync function

Future<(int, Mat, Mat, Mat)> recoverPoseCameraMatrixAsync(
  1. InputArray E,
  2. InputArray points1,
  3. InputArray points2,
  4. InputArray cameraMatrix, {
  5. OutputArray? R,
  6. OutputArray? t,
  7. double distanceThresh = 1,
  8. InputOutputArray? mask,
  9. OutputArray? triangulatedPoints,
})

int cv::recoverPose (InputArray E, InputArray points1, InputArray points2, InputArray cameraMatrix, OutputArray R, OutputArray t, double distanceThresh, InputOutputArray mask=noArray(), OutputArray triangulatedPoints=noArray())

https://docs.opencv.org/4.11.0/d9/d0c/group__calib3d.html#gadb7d2dfcc184c1d2f496d8639f4371c0

Implementation

Future<(int rval, Mat R, Mat t, Mat triangulatedPoints)> recoverPoseCameraMatrixAsync(
  InputArray E,
  InputArray points1,
  InputArray points2,
  InputArray cameraMatrix, {
  OutputArray? R,
  OutputArray? t,
  double distanceThresh = 1,
  InputOutputArray? mask,
  OutputArray? triangulatedPoints,
}) async {
  R ??= Mat.empty();
  t ??= Mat.empty();
  mask ??= Mat.empty();
  triangulatedPoints ??= Mat.empty();
  final prval = calloc<ffi.Int>();
  return cvRunAsync0(
      (callback) => ccalib3d.cv_recoverPose(
            E.ref,
            points1.ref,
            points2.ref,
            cameraMatrix.ref,
            R!.ref,
            t!.ref,
            distanceThresh,
            mask!.ref,
            triangulatedPoints!.ref,
            prval,
            callback,
          ), (c) {
    final rval = prval.value;
    calloc.free(prval);
    return c.complete((rval, R!, t!, triangulatedPoints!));
  });
}