decomposeEssentialMatAsync function

Future<(Mat, Mat, Mat)> decomposeEssentialMatAsync(
  1. Mat E, {
  2. OutputArray? R1,
  3. OutputArray? R2,
  4. OutputArray? t,
})

Decompose an essential matrix to possible rotations and translation.

void cv::decomposeEssentialMat (InputArray E, OutputArray R1, OutputArray R2, OutputArray t);

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

Implementation

Future<(Mat r1, Mat r2, Mat t)> decomposeEssentialMatAsync(
  Mat E, {
  OutputArray? R1,
  OutputArray? R2,
  OutputArray? t,
}) async {
  R1 ??= Mat.empty();
  R2 ??= Mat.empty();
  t ??= Mat.empty();
  return cvRunAsync0(
    (callback) => ccalib3d.cv_decomposeEssentialMat(
      E.ref,
      R1!.ref,
      R2!.ref,
      t!.ref,
      callback,
    ),
    (c) => c.complete((R1!, R2!, t!)),
  );
}