28#ifndef UTIL3D_MOTION_ESTIMATION_H_
29#define UTIL3D_MOTION_ESTIMATION_H_
31#include <rtabmap/core/rtabmap_core_export.h>
33#include <rtabmap/core/Transform.h>
34#include <rtabmap/core/CameraModel.h>
106 const std::map<int, cv::Point3f> & words3A,
107 const std::map<int, cv::KeyPoint> & words2B,
110 int iterations = 100,
111 double reprojError = 5.,
113 int pnpRefineIterations = 1,
114 int varianceMedianRatio = 4,
115 float maxVariance = 0,
117 const std::map<int, cv::Point3f> & words3B = std::map<int, cv::Point3f>(),
118 cv::Mat * covariance = 0,
119 std::vector<int> * matchesOut = 0,
120 std::vector<int> * inliersOut = 0,
121 bool splitLinearCovarianceComponents =
false);
158 const std::map<int, cv::Point3f> & words3A,
159 const std::map<int, cv::KeyPoint> & words2B,
160 const std::vector<CameraModel> & cameraModels,
161 unsigned int samplingPolicy,
166 int refineIterations,
167 int varianceMedianRatio,
170 const std::map<int, cv::Point3f> & words3B,
171 cv::Mat * covariance,
172 std::vector<std::vector<int> > * matchesOut,
173 std::vector<std::vector<int> > * inliersOut,
174 bool splitLinearCovarianceComponents);
180 const std::map<int, cv::Point3f> & words3A,
181 const std::map<int, cv::KeyPoint> & words2B,
182 const std::vector<CameraModel> & cameraModels,
183 unsigned int samplingPolicy = 0,
185 int iterations = 100,
186 double reprojError = 5.,
188 int pnpRefineIterations = 1,
189 int varianceMedianRatio = 4,
190 float maxVariance = 0,
192 const std::map<int, cv::Point3f> & words3B = std::map<int, cv::Point3f>(),
193 cv::Mat * covariance = 0,
194 std::vector<int> * matchesOut = 0,
195 std::vector<int> * inliersOut = 0,
196 bool splitLinearCovarianceComponents =
false);
220 const std::map<int, cv::Point3f> & words3A,
221 const std::map<int, cv::Point3f> & words3B,
223 double inliersDistance = 0.1,
224 int iterations = 100,
225 int refineIterations = 5,
226 cv::Mat * covariance = 0,
227 std::vector<int> * matchesOut = 0,
228 std::vector<int> * inliersOut = 0);
261 const std::vector<cv::Point3f> & objectPoints,
262 const std::vector<cv::Point2f> & imagePoints,
263 const cv::Mat & cameraMatrix,
264 const cv::Mat & distCoeffs,
267 bool useExtrinsicGuess,
269 float reprojectionError,
271 std::vector<int> & inliers,
273 int refineIterations = 1,
274 float refineSigma = 3.0f);
Represents a pinhole camera model containing intrinsic and extrinsic parameters, used for projection,...
void RTABMAP_CORE_EXPORT setRansacDeterministicSeed(bool enable)
Toggle a deterministic seed for OpenGV's internal RANSAC RNG.
Transform RTABMAP_CORE_EXPORT estimateMotion3DTo3D(const std::map< int, cv::Point3f > &words3A, const std::map< int, cv::Point3f > &words3B, int minInliers=10, double inliersDistance=0.1, int iterations=100, int refineIterations=5, cv::Mat *covariance=0, std::vector< int > *matchesOut=0, std::vector< int > *inliersOut=0)
Estimates the 3D rigid transformation between two sets of 3D points.
Transform RTABMAP_CORE_EXPORT estimateMotion3DTo2D(const std::map< int, cv::Point3f > &words3A, const std::map< int, cv::KeyPoint > &words2B, const CameraModel &cameraModel, int minInliers=10, int iterations=100, double reprojError=5., int flagsPnP=0, int pnpRefineIterations=1, int varianceMedianRatio=4, float maxVariance=0, const Transform &guess=Transform::getIdentity(), const std::map< int, cv::Point3f > &words3B=std::map< int, cv::Point3f >(), cv::Mat *covariance=0, std::vector< int > *matchesOut=0, std::vector< int > *inliersOut=0, bool splitLinearCovarianceComponents=false)
Estimates a 6-DOF camera transform from 3D-2D point correspondences using PnP RANSAC.
void RTABMAP_CORE_EXPORT solvePnPRansac(const std::vector< cv::Point3f > &objectPoints, const std::vector< cv::Point2f > &imagePoints, const cv::Mat &cameraMatrix, const cv::Mat &distCoeffs, cv::Mat &rvec, cv::Mat &tvec, bool useExtrinsicGuess, int iterationsCount, float reprojectionError, int minInliersCount, std::vector< int > &inliers, int flags, int refineIterations=1, float refineSigma=3.0f)
Estimates the camera pose using the PnP RANSAC algorithm and optionally refines it.
bool RTABMAP_CORE_EXPORT ransacDeterministicSeedEnabled()