31 #ifndef OPENCV_FLANN_NNINDEX_H
32 #define OPENCV_FLANN_NNINDEX_H
47 template <
typename Distance>
50 typedef typename Distance::ElementType ElementType;
51 typedef typename Distance::ResultType DistanceType;
73 assert(indices.
rows >= queries.
rows);
75 assert(
int(indices.
cols) >= knn);
76 assert(
int(dists.
cols) >= knn);
80 for (
size_t i = 0; i < queries.
rows; i++) {
81 resultSet.
init(indices[i], dists[i]);
86 for (
size_t i = 0; i < queries.
rows; i++) {
90 else resultSet.
copy(indices[i], dists[i], knn);
106 if (query.
rows != 1) {
107 fprintf(stderr,
"I can only search one feature at a time for range search\n");
114 int* indices_ptr = NULL;
115 DistanceType* dists_ptr = NULL;
116 if (indices.
cols > 0) {
118 indices_ptr = indices[0];
119 dists_ptr = dists[0];
127 else resultSet.
copy(indices_ptr, dists_ptr, n);
130 return (
int)resultSet.
size();
137 virtual void saveIndex(FILE* stream) = 0;
143 virtual void loadIndex(FILE* stream) = 0;
148 virtual size_t size()
const = 0;
153 virtual size_t veclen()
const = 0;
179 #endif //OPENCV_FLANN_NNINDEX_H
flann_algorithm_t
Definition: defines.h:81
virtual flann_algorithm_t getType() const =0
T get_param(const IndexParams ¶ms, std::string name, const T &default_value)
Definition: params.h:59
size_t cols
Definition: matrix.h:52
virtual size_t size() const =0
virtual void saveIndex(FILE *stream)=0
Saves the index to a stream.
virtual void findNeighbors(ResultSet< DistanceType > &result, const ElementType *vec, const SearchParams &searchParams)=0
Method that searches for nearest-neighbours.
virtual void knnSearch(const Matrix< ElementType > &queries, Matrix< int > &indices, Matrix< DistanceType > &dists, int knn, const SearchParams ¶ms)
Perform k-nearest neighbor search.
Definition: nn_index.h:70
const CvArr const CvArr CvArr * result
Definition: core_c.h:805
void init(int *indices_, DistanceType *dists_)
Definition: result_set.h:165
void clear()
Definition: result_set.h:471
virtual void sortAndCopy(int *indices, DistanceType *dist, int n_neighbors=-1) const
Definition: result_set.h:351
GLuint GLuint GLsizei GLenum const GLvoid * indices
Definition: legacy.hpp:3084
virtual IndexParams getParameters() const =0
size_t size() const
Definition: result_set.h:359
Definition: result_set.h:152
virtual void buildIndex()=0
Builds the index.
void clear()
Definition: result_set.h:425
Definition: result_set.h:389
virtual void copy(int *indices, DistanceType *dist, int n_neighbors=-1) const
Definition: result_set.h:327
Definition: result_set.h:66
std::map< std::string, any > IndexParams
Definition: params.h:42
virtual void loadIndex(FILE *stream)=0
Loads the index from a stream.
Definition: result_set.h:448
GLenum const GLfloat * params
Definition: compat.hpp:688
virtual int radiusSearch(const Matrix< ElementType > &query, Matrix< int > &indices, Matrix< DistanceType > &dists, float radius, const SearchParams ¶ms)
Perform radius search.
Definition: nn_index.h:104
Definition: nn_index.h:48
size_t rows
Definition: matrix.h:51
virtual int usedMemory() const =0
::max::max int
Definition: functional.hpp:324
virtual ~NNIndex()
Definition: nn_index.h:55
virtual size_t veclen() const =0
CvPoint int radius
Definition: core_c.h:1290