Table of Contents

Method SolvePnP

Namespace
OpenCvSharp
Assembly
OpenCvSharp.dll

SolvePnP(InputArray, InputArray, InputArray, InputArray, OutputArray, OutputArray, bool, SolvePnPMethod)

Finds an object pose from 3D-2D point correspondences.

public static void SolvePnP(InputArray objectPoints, InputArray imagePoints, InputArray cameraMatrix, InputArray distCoeffs, OutputArray rvec, OutputArray tvec, bool useExtrinsicGuess = false, SolvePnPMethod flags = SolvePnPMethod.Iterative)

Parameters

objectPoints InputArray

Array of object points in the object coordinate space, 3xN/Nx3 1-channel or 1xN/Nx1 3-channel, where N is the number of points. vector<Point3f> can be also passed here.

imagePoints InputArray

Array of corresponding image points, 2xN/Nx2 1-channel or 1xN/Nx1 2-channel, where N is the number of points. vector<Point2f> can be also passed here.

cameraMatrix InputArray

Input camera matrix

distCoeffs InputArray

Input vector of distortion coefficients (k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6]]) of 4, 5, or 8 elements. If the vector is null, the zero distortion coefficients are assumed.

rvec OutputArray

Output rotation vector that, together with tvec , brings points from the model coordinate system to the camera coordinate system.

tvec OutputArray

Output translation vector.

useExtrinsicGuess bool

If true, the function uses the provided rvec and tvec values as initial approximations of the rotation and translation vectors, respectively, and further optimizes them.

flags SolvePnPMethod

Method for solving a PnP problem:

SolvePnP(IEnumerable<Point3f>, IEnumerable<Point2f>, double[,], IEnumerable<double>?, ref double[], ref double[], bool, SolvePnPMethod)

Finds an object pose from 3D-2D point correspondences.

[SuppressMessage("Maintainability", "CA1508: Avoid dead conditional code")]
public static void SolvePnP(IEnumerable<Point3f> objectPoints, IEnumerable<Point2f> imagePoints, double[,] cameraMatrix, IEnumerable<double>? distCoeffs, ref double[] rvec, ref double[] tvec, bool useExtrinsicGuess = false, SolvePnPMethod flags = SolvePnPMethod.Iterative)

Parameters

objectPoints IEnumerable<Point3f>

Array of object points in the object coordinate space, 3xN/Nx3 1-channel or 1xN/Nx1 3-channel, where N is the number of points. vector<Point3f> can be also passed here.

imagePoints IEnumerable<Point2f>

Array of corresponding image points, 2xN/Nx2 1-channel or 1xN/Nx1 2-channel, where N is the number of points. vector<Point2f> can be also passed here.

cameraMatrix double[,]

Input camera matrix

distCoeffs IEnumerable<double>

Input vector of distortion coefficients (k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6]]) of 4, 5, or 8 elements. If the vector is null, the zero distortion coefficients are assumed.

rvec double[]

Output rotation vector that, together with tvec , brings points from the model coordinate system to the camera coordinate system.

tvec double[]

Output translation vector.

useExtrinsicGuess bool

If true, the function uses the provided rvec and tvec values as initial approximations of the rotation and translation vectors, respectively, and further optimizes them.

flags SolvePnPMethod

Method for solving a PnP problem