cpp-toolbox  0.0.1
A toolbox library for C++
Loading...
Searching...
No Matches
knn_correspondence_generator.hpp
Go to the documentation of this file.
1#pragma once
2
5#include <unordered_map>
6#include <algorithm>
7
8namespace toolbox::pcl
9{
10
45template<typename DataType, typename Signature, typename KNN>
48 knn_correspondence_generator_t<DataType, Signature, KNN>,
49 DataType, Signature>
50{
51public:
54 DataType, Signature>;
55 using typename base_type::point_cloud;
56 using typename base_type::point_cloud_ptr;
57 using typename base_type::signatures_ptr;
59
64 void set_knn(std::shared_ptr<KNN> knn) { m_knn = knn; }
65
70 std::shared_ptr<KNN> get_knn() const { return m_knn; }
71
76 void compute_impl(std::vector<correspondence_t>& correspondences);
77
78private:
82 void build_knn_dataset();
83
89 void find_candidates_for_descriptor(std::size_t src_idx,
90 std::vector<correspondence_t>& candidates) const;
91
97 void perform_mutual_verification(const std::vector<correspondence_t>& forward_corrs,
98 std::vector<correspondence_t>& verified_corrs);
99
100 std::shared_ptr<KNN> m_knn;
101};
102
103} // namespace toolbox::pcl
104
对应点生成器的基类(CRTP模式) / Base class for correspondence generators (CRTP pattern)
Definition base_correspondence_generator.hpp:61
std::shared_ptr< std::vector< std::size_t > > keypoint_indices_ptr
Definition base_correspondence_generator.hpp:66
std::shared_ptr< std::vector< Signature > > signatures_ptr
Definition base_correspondence_generator.hpp:65
toolbox::types::point_cloud_t< DataType > point_cloud
Definition base_correspondence_generator.hpp:63
基于KNN的对应点生成器 / KNN-based correspondence generator
Definition knn_correspondence_generator.hpp:50
void set_knn(std::shared_ptr< KNN > knn)
设置KNN搜索算法 / Set KNN search algorithm
Definition knn_correspondence_generator.hpp:64
std::shared_ptr< KNN > get_knn() const
获取KNN搜索算法 / Get KNN search algorithm
Definition knn_correspondence_generator.hpp:70
void compute_impl(std::vector< correspondence_t > &correspondences)
计算对应关系的实现 / Implementation of computing correspondences
Definition knn_correspondence_generator_impl.hpp:13
Definition base_correspondence_generator.hpp:18