28#ifndef UTIL3D_FEATURES_H_
29#define UTIL3D_FEATURES_H_
31#include <rtabmap/core/rtabmap_core_export.h>
33#include <opencv2/core/version.hpp>
34#if CV_MAJOR_VERSION < 5
35#include <opencv2/calib3d/calib3d.hpp>
37#include <opencv2/calib.hpp>
39#include <rtabmap/core/Transform.h>
40#include <rtabmap/core/CameraModel.h>
41#include <rtabmap/core/StereoCameraModel.h>
75std::vector<cv::Point3f> RTABMAP_CORE_EXPORT generateKeypoints3DDepth(
76 const std::vector<cv::KeyPoint> & keypoints,
77 const cv::Mat & depth,
78 const std::vector<CameraModel> & cameraModels,
86std::vector<cv::Point3f> RTABMAP_CORE_EXPORT generateKeypoints3DDepth(
87 const std::vector<cv::KeyPoint> & keypoints,
88 const cv::Mat & depth,
89 const CameraModel & cameraModel,
116std::vector<cv::Point3f> RTABMAP_CORE_EXPORT generateKeypoints3DDisparity(
117 const std::vector<cv::KeyPoint> & keypoints,
118 const cv::Mat & disparity,
119 const StereoCameraModel & stereoCameraModel,
153std::vector<cv::Point3f> RTABMAP_CORE_EXPORT generateKeypoints3DStereo(
154 const std::vector<cv::Point2f> & leftCorners,
155 const std::vector<cv::Point2f> & rightCorners,
156 const StereoCameraModel & model,
157 const std::vector<unsigned char> & mask = std::vector<unsigned char>(),
161std::map<int, cv::Point3f> RTABMAP_CORE_EXPORT generateWords3DMono(
162 const std::map<int, cv::KeyPoint> & kpts,
163 const std::map<int, cv::KeyPoint> & previousKpts,
164 const CameraModel & cameraModel,
165 Transform & cameraTransform,
166 float ransacReprojThreshold = 3.0f,
167 float ransacConfidence = 0.99f,
168 int varianceMedianRatio = 4,
169 const std::map<int, cv::Point3f> & refGuess3D = std::map<int, cv::Point3f>(),
170 double * variance = 0,
171 std::vector<int> * matchesOut = 0);
190std::multimap<int, cv::KeyPoint> RTABMAP_CORE_EXPORT aggregate(
191 const std::list<int> & wordIds,
192 const std::vector<cv::KeyPoint> & keypoints);