# Essential Matrix

- void \*Fadas3D\_FindEssentialMat\_Create(uint32\_t maxNumPts = 1500, uint32\_t maxIters = 34, [float64\_t](https://docs.qualcomm.com/doc/80-63309-1/topic/typedef_fadas_8h_1ac55f3ae81b5bc9053760baacf57e47f4.html#_CPPv49float64_t) thresh = 1e-8)

    - Creates and initializes resources to compute the essential matrix.

- Parameters:

    - - **numPts** – Number of 2D points to which the essential matrix must be computed.
- **maxIters** – Maximum iteration count to use in the Durand-Kerner method for solving polynomial equations.
- **thresh** – Threshold to use to determine convergence in the Durand-Kerner method for solving polynomial equations.

- Returns:

    - Created handle — Success.

NULL

— Error.

- [FadasError\_e](https://docs.qualcomm.com/doc/80-63309-1/topic/enum_fadas_8h_1a280abf443019bfc722ac1158e5fe1013.html#_CPPv412FadasError_e) Fadas3D\_FindEssentialMat\_Destroy(void \*hFindEssentialMat)

    - Deinitializes resources allocated for computing the essential matrix.

- Parameters:

    - **hFindEssentialMat** – Handle to the essential matrix computer.

- Returns:

    - [FADAS\_ERROR\_NONE](https://docs.qualcomm.com/doc/80-63309-1/topic/enum_fadas_8h_1a280abf443019bfc722ac1158e5fe1013.html#fadas_8h_1a280abf443019bfc722ac1158e5fe1013aea09a4171f0866f38326d7e5323f2d12) — Success.

- [FadasError\_e](https://docs.qualcomm.com/doc/80-63309-1/topic/enum_fadas_8h_1a280abf443019bfc722ac1158e5fe1013.html#_CPPv412FadasError_e) Fadas3D\_FindEssentialMat\_Run(void \*hFindEssentialMat, [FadasMatrix\_t](https://docs.qualcomm.com/doc/80-63309-1/topic/struct_fadas_matrix__t.html#_CPPv413FadasMatrix_t) ptsCam1, [FadasMatrix\_t](https://docs.qualcomm.com/doc/80-63309-1/topic/struct_fadas_matrix__t.html#_CPPv413FadasMatrix_t) ptsCam2, [FadasCameraProps\_t](https://docs.qualcomm.com/doc/80-63309-1/topic/struct_fadas_camera_props__t.html#_CPPv418FadasCameraProps_t) camProps, uint8\_t \*pMask, [FadasMatrix\_t](https://docs.qualcomm.com/doc/80-63309-1/topic/struct_fadas_matrix__t.html#_CPPv413FadasMatrix_t) essentialMat)

    - Computes the essential matrix from the specified 2D points from two images.

- Parameters:

    - - **hFindEssentialMat** – Handle to the essential matrix computer.
- **ptsCam1** – Matrix object containing 2D points from the first image. Dimension of the matrix must be 1 x 2N, where N is the number of points and N &gt;= 5.
- **ptsCam2** – Matrix object containing 2D points from the second image. Dimension of the matrix must be 1 x 2N.
- **camProps** – Camera calibration parameters.
- **pMask** – Pointer to the output array of N elements, every element of which is set to 0 for outliers and to 1 for the other points. Size of the buffer must be N bytes.
- **essentialMat** – Computed essential matrix. Dimension of the matrix must be 3 x 3.

- Returns:

    - [FADAS\_ERROR\_NONE](https://docs.qualcomm.com/doc/80-63309-1/topic/enum_fadas_8h_1a280abf443019bfc722ac1158e5fe1013.html#fadas_8h_1a280abf443019bfc722ac1158e5fe1013aea09a4171f0866f38326d7e5323f2d12) — Success.

- void \*Fadas3D\_FindEssentialMatf64\_Create(uint32\_t maxNumPts = 1500, uint32\_t maxIters = 34, [float64\_t](https://docs.qualcomm.com/doc/80-63309-1/topic/typedef_fadas_8h_1ac55f3ae81b5bc9053760baacf57e47f4.html#_CPPv49float64_t) thresh = 1e-8)

    - Same as [Fadas3D\_FindEssentialMat\_Create](https://docs.qualcomm.com/doc/80-63309-1/topic/essential_matrix.html#group__three__d__essnmat_1gadf7a4f87ad26c9b7e0e1b328eb75c78b) for 64-bit floating point data.

- Parameters:

    - - **numPts** – Number of 2D points to which the essential matrix must be computed.
- **maxIters** – Maximum iteration count to use in the Durand-Kerner method for solving polynomial equations.
- **thresh** – Threshold to use to determine convergence in the Durand-Kerner method for solving polynomial equations.

- Returns:

    - Created handle — Success.

NULL

— Error.

- [FadasError\_e](https://docs.qualcomm.com/doc/80-63309-1/topic/enum_fadas_8h_1a280abf443019bfc722ac1158e5fe1013.html#_CPPv412FadasError_e) Fadas3D\_FindEssentialMatf64\_Destroy(void \*hFindEssentialMat)

    - Same as [Fadas3D\_FindEssentialMat\_Destroy](https://docs.qualcomm.com/doc/80-63309-1/topic/essential_matrix.html#group__three__d__essnmat_1ga7ea25e07de1ade55e8c8b42dac5f5bfa) for 64-bit floating point data.

- Parameters:

    - **hFindEssentialMat** – Handle to the essential matrix computer.

- Returns:

    - [FADAS\_ERROR\_NONE](https://docs.qualcomm.com/doc/80-63309-1/topic/enum_fadas_8h_1a280abf443019bfc722ac1158e5fe1013.html#fadas_8h_1a280abf443019bfc722ac1158e5fe1013aea09a4171f0866f38326d7e5323f2d12) — Success.

- [FadasError\_e](https://docs.qualcomm.com/doc/80-63309-1/topic/enum_fadas_8h_1a280abf443019bfc722ac1158e5fe1013.html#_CPPv412FadasError_e) Fadas3D\_FindEssentialMatf64\_Run(void \*hFindEssentialMat, [FadasMatrixf64\_t](https://docs.qualcomm.com/doc/80-63309-1/topic/struct_fadas_matrixf64__t.html#_CPPv416FadasMatrixf64_t) ptsCam1, [FadasMatrixf64\_t](https://docs.qualcomm.com/doc/80-63309-1/topic/struct_fadas_matrixf64__t.html#_CPPv416FadasMatrixf64_t) ptsCam2, [FadasCameraProps\_t](https://docs.qualcomm.com/doc/80-63309-1/topic/struct_fadas_camera_props__t.html#_CPPv418FadasCameraProps_t) camProps, uint8\_t \*pMask, [FadasMatrixf64\_t](https://docs.qualcomm.com/doc/80-63309-1/topic/struct_fadas_matrixf64__t.html#_CPPv416FadasMatrixf64_t) essentialMat)

    - Same as [Fadas3D\_FindEssentialMat\_Run](https://docs.qualcomm.com/doc/80-63309-1/topic/essential_matrix.html#group__three__d__essnmat_1gae6c3328ae670ce427579bd1c7322a19d) for 64-bit floating point data.

- Parameters:

    - - **hFindEssentialMat** – Handle to the essential matrix computer.
- **ptsCam1** – Matrix object containing 2D points from the first image. Dimension of the matrix must be 1 x 2N, where N is the number of points and N &gt;= 5.
- **ptsCam2** – Matrix object containing 2D points from the second image. Dimension of the matrix must be 1 x 2N.
- **camProps** – Camera calibration parameters.
- **pMask** – Pointer to the output array of N elements, every element of which is set to 0 for outliers and to 1 for the other points. Size of the buffer must be N bytes.
- **essentialMat** – Computed essential matrix. Dimension of the matrix must be 3 x 3.

- Returns:

    - [FADAS\_ERROR\_NONE](https://docs.qualcomm.com/doc/80-63309-1/topic/enum_fadas_8h_1a280abf443019bfc722ac1158e5fe1013.html#fadas_8h_1a280abf443019bfc722ac1158e5fe1013aea09a4171f0866f38326d7e5323f2d12) — Success.

Last Published: Sep 30, 2024

[Previous Topic
3D transformation](https://docs.qualcomm.com/bundle/publicresource/80-63309-1/topics/3d-transformation.md) [Next Topic
Recover Pose](https://docs.qualcomm.com/bundle/publicresource/80-63309-1/topics/recover_pose.md)