flann索引类

来源:互联网 发布:淘宝妹子爱吃的零食 编辑:程序博客网 时间:2024/06/02 02:10

flann::Index 是Flann近邻索引类,该类用于抽象的不同类型的最近搜索索引。

namespace flann {     template<typename Distance>     class Index     {         typedef typename Distance::ElementType ElementType;         typedef typename Distance::ResultType DistanceType;     public:         Index(const IndexParams& params, Distance distance = Distance() );         Index(const Matrix<ElementType>& points, const IndexParams& params,                 Distance distance = Distance() );         ~Index();         //建立最近邻搜索索引。         void buildIndex();         void buildIndex(const Matrix<ElementType>& points);         //增加点到已建立的索引中,为了避免失衡,该方法具有增加大量的点后可以选择重建索引的选项默认为2         void addPoints(const Matrix<ElementType>& points,float rebuild_threshold = 2);         //从索引中移除指定id的点  ,其余其他点的索引不变           void removePoint(size_t point_id) ;         //返回指定id数据的指针                    ElementType* getPoint(size_t point_id);         //为一组查询点执行最邻近搜索         @param queries 包含查询点矩阵 ,矩阵尺寸为查询点数*维数         @param indices 保存被找到的K最近邻的索引号,大小是查询点数*knn         @param knn 查询点个数         @param params 搜索参数,其值越大,搜索精度越高,但是会消耗更多的时间,如果要检索所有叶子,使用宏值CHECKS_UNLIMITED         int knnSearch(const Matrix<ElementType>& queries,                        Matrix<int>& indices,                        Matrix<DistanceType>& dists,                        size_t knn,                        const SearchParams& params);         int knnSearch(const Matrix<ElementType>& queries,                        std::vector< std::vector<int> >& indices,                        std::vector<std::vector<DistanceType> >& dists,                        size_t knn,                        const SearchParams& params);         int radiusSearch(const Matrix<ElementType>& queries,                          Matrix<int>& indices,                          Matrix<DistanceType>& dists,                          float radius,                          const SearchParams& params);         //执行一系列点的半径搜索         int radiusSearch(const Matrix<ElementType>& queries,                           std::vector< std::vector<int> >& indices,                           std::vector<std::vector<DistanceType> >& dists,                           float radius,                           const SearchParams& params);         void save(std::string filename);         int veclen() const;         int size() const;         IndexParams getParameters() const;         flann_algorithm_t getType() const;}; }
0 0
原创粉丝点击