Skip to content

findEssentialMat

geometryfunctionOpenCV 5.0.0
import { findEssentialMat } from '@banou/opencv-wasm'

Use after await initOpenCV(). See the initialization and named imports guide.

Calculates an essential matrix from the corresponding points in two images.

findEssentialMat(points1: Mat, points2: Mat, cameraMatrix: Mat, method: number, prob: number, threshold: number, maxIters: number, mask: Mat): Mat;
6 available overloads
findEssentialMat(points1: Mat, points2: Mat, cameraMatrix: Mat): Mat;
findEssentialMat(points1: Mat, points2: Mat, cameraMatrix: Mat, method: number): Mat;
findEssentialMat(points1: Mat, points2: Mat, cameraMatrix: Mat, method: number, prob: number): Mat;
findEssentialMat(points1: Mat, points2: Mat, cameraMatrix: Mat, method: number, prob: number, threshold: number): Mat;
findEssentialMat(points1: Mat, points2: Mat, cameraMatrix: Mat, method: number, prob: number, threshold: number, maxIters: number): Mat;
findEssentialMat(points1: Mat, points2: Mat, cameraMatrix: Mat, method: number, prob: number, threshold: number, maxIters: number, mask: Mat): Mat;
points1

Array of N (N >= 5) 2D points from the first image. The point coordinates should be floating-point (single or double precision).

points2

Array of the second image points of the same size and format as points1.

cameraMatrix

Camera intrinsic matrix \cameramatrix{A} . Note that this function assumes that points1 and points2 are feature points from cameras with the same camera intrinsic matrix. If this assumption does not hold for your use case, use another function overload or #undistortPoints with P = cv::NoArray() for both cameras to transform image points to normalized image coordinates, which are valid for the identity camera intrinsic matrix. When passing these coordinates, pass the identity matrix for this parameter.

method

Method for computing an essential matrix.

  • RANSAC for the RANSAC algorithm.
  • LMEDS for the LMedS algorithm.
prob

Parameter used for the RANSAC or LMedS methods only. It specifies a desirable level of confidence (probability) that the estimated matrix is correct.

threshold

Parameter used for RANSAC. It is the maximum distance from a point to an epipolar line in pixels, beyond which the point is considered an outlier and is not used for computing the final fundamental matrix. It can be set to something like 1-3, depending on the accuracy of the point localization, image resolution, and the image noise.

maxIters

The maximum number of robust method iterations.

This function estimates essential matrix based on the five-point algorithm solver in [Nister03] . [SteweniusCFS] is also a related. The epipolar geometry is described by the following equation:

[p_2; 1]^T K^{-T} E K^{-1} [p_1; 1] = 0

where E is an essential matrix, p_1 and p_2 are corresponding points in the first and the second images, respectively. The result of this function may be passed further to #decomposeEssentialMat or #recoverPose to recover the relative pose between cameras.

mask

Output destination, filled by the native operation. Output array of N elements, every element of which is set to 0 for outliers and to 1 for the other points. The array is computed only in the RANSAC and LMedS methods.

Returns

The Mat result. Release returned native handles with using or delete(), including handles nested in results.

These signatures describe this package. Upstream documentation can mention optional backends that are absent from this build. Check runtime compatibility before choosing a backend or file format.