decomposeEssentialMat function

(Mat, Mat, Mat) decomposeEssentialMat(
  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

(Mat r1, Mat r2, Mat t) decomposeEssentialMat(
  Mat E, {
  OutputArray? R1,
  OutputArray? R2,
  OutputArray? t,
}) {
  R1 ??= Mat.empty();
  R2 ??= Mat.empty();
  t ??= Mat.empty();
  cvRun(
    () => ccalib3d.cv_decomposeEssentialMat(
      E.ref,
      R1!.ref,
      R2!.ref,
      t!.ref,
      ffi.nullptr,
    ),
  );
  return (R1, R2, t);
}