|
template<typename T > |
int | compressElems (T *ptr, const uchar *mask, int mstep, int count) |
|
cv::Ptr< PointSetRegistrator > | createLMeDSPointSetRegistrator (const cv::Ptr< PointSetRegistrator::Callback > &cb, int modelPoints, double confidence=0.99, int maxIters=1000) |
|
Ptr< PointSetRegistrator > | createLMeDSPointSetRegistrator (const Ptr< PointSetRegistrator::Callback > &_cb, int _modelPoints, double _confidence, int _maxIters) |
|
cv::Ptr< LMSolver > | createLMSolver (const cv::Ptr< LMSolver::Callback > &cb, int maxIters) |
|
cv::Ptr< PointSetRegistrator > | createRANSACPointSetRegistrator (const cv::Ptr< PointSetRegistrator::Callback > &cb, int modelPoints, double threshold, double confidence=0.99, int maxIters=1000) |
|
Ptr< PointSetRegistrator > | createRANSACPointSetRegistrator (const Ptr< PointSetRegistrator::Callback > &_cb, int _modelPoints, double _threshold, double _confidence, int _maxIters) |
|
int | RANSACUpdateNumIters (double p, double ep, int modelPoints, int maxIters) |
|
bool | solvePnPRansac (cv::InputArray objectPoints, cv::InputArray imagePoints, cv::InputArray cameraMatrix, cv::InputArray distCoeffs, cv::OutputArray rvec, cv::OutputArray tvec, bool useExtrinsicGuess=false, int iterationsCount=100, float reprojectionError=8.0, double confidence=0.99, cv::OutputArray inliers=cv::noArray(), int flags=CV_ITERATIVE) |
| Finds an object pose from 3D-2D point correspondences using the RANSAC scheme. More...
|
|
bool | solvePnPRansac (InputArray _opoints, InputArray _ipoints, InputArray _cameraMatrix, InputArray _distCoeffs, OutputArray _rvec, OutputArray _tvec, bool useExtrinsicGuess, int iterationsCount, float reprojectionError, double confidence, OutputArray _inliers, int flags) |
|
bool cv3::solvePnPRansac |
( |
cv::InputArray |
objectPoints, |
|
|
cv::InputArray |
imagePoints, |
|
|
cv::InputArray |
cameraMatrix, |
|
|
cv::InputArray |
distCoeffs, |
|
|
cv::OutputArray |
rvec, |
|
|
cv::OutputArray |
tvec, |
|
|
bool |
useExtrinsicGuess = false , |
|
|
int |
iterationsCount = 100 , |
|
|
float |
reprojectionError = 8.0 , |
|
|
double |
confidence = 0.99 , |
|
|
cv::OutputArray |
inliers = cv::noArray() , |
|
|
int |
flags = CV_ITERATIVE |
|
) |
| |
Finds an object pose from 3D-2D point correspondences using the RANSAC scheme.
- Parameters
-
objectPoints | 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 | 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 | Input camera matrix . |
distCoeffs | Input vector of distortion coefficients of 4, 5, 8, 12 or 14 elements. If the vector is NULL/empty, the zero distortion coefficients are assumed. |
rvec | Output rotation vector (see Rodrigues ) that, together with tvec , brings points from the model coordinate system to the camera coordinate system. |
tvec | Output translation vector. |
useExtrinsicGuess | Parameter used for SOLVEPNP_ITERATIVE. If true (1), the function uses the provided rvec and tvec values as initial approximations of the rotation and translation vectors, respectively, and further optimizes them. |
iterationsCount | Number of iterations. |
reprojectionError | Inlier threshold value used by the RANSAC procedure. The parameter value is the maximum allowed distance between the observed and computed point projections to consider it an inlier. |
confidence | The probability that the algorithm produces a useful result. |
inliers | Output vector that contains indices of inliers in objectPoints and imagePoints . |
flags | Method for solving a PnP problem (see solvePnP ). |
The function estimates an object pose given a set of object points, their corresponding image projections, as well as the camera matrix and the distortion coefficients. This function finds such a pose that minimizes reprojection error, that is, the sum of squared distances between the observed projections imagePoints and the projected (using projectPoints ) objectPoints. The use of RANSAC makes the function resistant to outliers.
- Note
- An example of how to use solvePNPRansac for object detection can be found at opencv_source_code/samples/cpp/tutorial_code/calib3d/real_time_pose_estimation/