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
objectPointsInputArrayArray 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.
imagePointsInputArrayArray 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.
cameraMatrixInputArrayInput camera matrix
distCoeffsInputArrayInput 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.
rvecOutputArrayOutput rotation vector that, together with tvec , brings points from the model coordinate system to the camera coordinate system.
tvecOutputArrayOutput translation vector.
useExtrinsicGuessboolIf true, the function uses the provided rvec and tvec values as initial approximations of the rotation and translation vectors, respectively, and further optimizes them.
flagsSolvePnPMethodMethod 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
objectPointsIEnumerable<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.
imagePointsIEnumerable<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.
cameraMatrixdouble[,]Input camera matrix
distCoeffsIEnumerable<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.
rvecdouble[]Output rotation vector that, together with tvec , brings points from the model coordinate system to the camera coordinate system.
tvecdouble[]Output translation vector.
useExtrinsicGuessboolIf true, the function uses the provided rvec and tvec values as initial approximations of the rotation and translation vectors, respectively, and further optimizes them.
flagsSolvePnPMethodMethod for solving a PnP problem