28 #ifndef UTIL3D_CORRESPONDENCES_H_ 29 #define UTIL3D_CORRESPONDENCES_H_ 33 #include <pcl/point_cloud.h> 34 #include <pcl/point_types.h> 35 #include <opencv2/features2d/features2d.hpp> 48 const std::multimap<int, cv::KeyPoint> & wordsA,
49 const std::multimap<int, cv::KeyPoint> & wordsB,
50 std::list<std::pair<cv::Point2f, cv::Point2f> > & pairs);
53 const std::multimap<int, cv::Point3f> & words1,
54 const std::multimap<int, cv::Point3f> & words2,
55 std::vector<cv::Point3f> & inliers1,
56 std::vector<cv::Point3f> & inliers2,
58 std::vector<int> * uniqueCorrespondences = 0);
61 const std::map<int, cv::Point3f> & words1,
62 const std::map<int, cv::Point3f> & words2,
63 std::vector<cv::Point3f> & inliers1,
64 std::vector<cv::Point3f> & inliers2,
66 std::vector<int> * correspondences = 0);
70 const std::multimap<int, pcl::PointXYZ> & words2,
71 pcl::PointCloud<pcl::PointXYZ> & cloud1,
72 pcl::PointCloud<pcl::PointXYZ> & cloud2);
75 const std::multimap<int, pcl::PointXYZ> & words2,
76 pcl::PointCloud<pcl::PointXYZ> & cloud1,
77 pcl::PointCloud<pcl::PointXYZ> & cloud2);
80 const cv::Mat & depthImage1,
81 const cv::Mat & depthImage2,
85 pcl::PointCloud<pcl::PointXYZ> & cloud1,
86 pcl::PointCloud<pcl::PointXYZ> & cloud2);
89 const pcl::PointCloud<pcl::PointXYZ> & cloud1,
90 const pcl::PointCloud<pcl::PointXYZ> & cloud2,
91 pcl::PointCloud<pcl::PointXYZ> & inliers1,
92 pcl::PointCloud<pcl::PointXYZ> & inliers2,
95 const pcl::PointCloud<pcl::PointXYZRGB> & cloud1,
96 const pcl::PointCloud<pcl::PointXYZRGB> & cloud2,
97 pcl::PointCloud<pcl::PointXYZ> & inliers1,
98 pcl::PointCloud<pcl::PointXYZ> & inliers2,
102 const std::multimap<int, pcl::PointXYZ> & wordsB);
105 pcl::PointCloud<pcl::PointXYZ> & inliers2,
108 bool removeDuplicates);
void RTABMAP_EXP extractXYZCorrespondencesRANSAC(const std::multimap< int, pcl::PointXYZ > &words1, const std::multimap< int, pcl::PointXYZ > &words2, pcl::PointCloud< pcl::PointXYZ > &cloud1, pcl::PointCloud< pcl::PointXYZ > &cloud2)
void RTABMAP_EXP filterMaxDepth(pcl::PointCloud< pcl::PointXYZ > &inliers1, pcl::PointCloud< pcl::PointXYZ > &inliers2, float maxDepth, char depthAxis, bool removeDuplicates)
void RTABMAP_EXP extractXYZCorrespondences(const std::multimap< int, pcl::PointXYZ > &words1, const std::multimap< int, pcl::PointXYZ > &words2, pcl::PointCloud< pcl::PointXYZ > &cloud1, pcl::PointCloud< pcl::PointXYZ > &cloud2)
int RTABMAP_EXP countUniquePairs(const std::multimap< int, pcl::PointXYZ > &wordsA, const std::multimap< int, pcl::PointXYZ > &wordsB)
void RTABMAP_EXP findCorrespondences(const std::multimap< int, cv::KeyPoint > &wordsA, const std::multimap< int, cv::KeyPoint > &wordsB, std::list< std::pair< cv::Point2f, cv::Point2f > > &pairs)