31 #ifndef OPENCV_FLANN_BASE_HPP_
32 #define OPENCV_FLANN_BASE_HPP_
73 template<
typename Distance>
76 typedef typename Distance::ElementType ElementType;
78 FILE* fin = fopen(filename.c_str(),
"rb");
84 throw FLANNException(
"Datatype of saved index is different than of the one to be created.");
86 if ((
size_t(header.
rows) != dataset.
rows)||(
size_t(header.
cols) != dataset.
cols)) {
87 throw FLANNException(
"The index saved belongs to a different dataset");
100 template<
typename Distance>
108 : index_params_(params)
114 nnIndex_ = load_saved_index<Distance>(features, get_param<std::string>(
params,
"filename"), distance);
118 nnIndex_ = create_index_by_type<Distance>(features,
params, distance);
133 nnIndex_->buildIndex();
139 FILE* fout = fopen(filename.c_str(),
"wb");
154 nnIndex_->saveIndex(stream);
163 nnIndex_->loadIndex(stream);
171 return nnIndex_->veclen();
179 return nnIndex_->size();
187 return nnIndex_->getType();
195 return nnIndex_->usedMemory();
204 return nnIndex_->getParameters();
217 nnIndex_->knnSearch(queries, indices, dists, knn, params);
231 return nnIndex_->radiusSearch(query, indices, dists, radius, params);
239 nnIndex_->findNeighbors(result, vec, searchParams);
256 return &index_params_;
279 template <
typename Distance>
void save_header(FILE *stream, const NNIndex< Distance > &index)
Definition: saving.h:86
void buildIndex()
Definition: kmeans_index.h:361
const CvArr CvSeq CvSeq CvMemStorage CvSURFParams params
Definition: compat.hpp:647
flann_algorithm_t
Definition: defines.h:81
GLint level
Definition: tracking.hpp:88
static void setLevel(int level)
Definition: logger.h:85
const char const char ** filename
Definition: core_c.h:1750
size_t cols
Definition: matrix.h:52
Definition: kmeans_index.h:81
Definition: flann_base.hpp:63
size_t size() const
Definition: flann_base.hpp:177
int radiusSearch(const Matrix< ElementType > &query, Matrix< int > &indices, Matrix< DistanceType > &dists, float radius, const SearchParams ¶ms)
Perform radius search.
Definition: flann_base.hpp:229
IndexParams getParameters() const
Definition: flann_base.hpp:202
void knnSearch(const Matrix< ElementType > &queries, Matrix< int > &indices, Matrix< DistanceType > &dists, int knn, const SearchParams ¶ms)
Perform k-nearest neighbor search.
Definition: flann_base.hpp:215
virtual void loadIndex(FILE *stream)
Loads the index from a stream.
Definition: flann_base.hpp:161
Definition: kmeans_index.h:56
flann_algorithm_t getType() const
Definition: flann_base.hpp:185
void save(std::string filename)
Definition: flann_base.hpp:137
Index(const Matrix< ElementType > &features, const IndexParams ¶ms, Distance distance=Distance())
Definition: flann_base.hpp:107
Definition: flann_base.hpp:101
int d
Definition: legacy.hpp:3064
CV_EXPORTS_W double kmeans(InputArray data, int K, CV_OUT InputOutputArray bestLabels, TermCriteria criteria, int attempts, int flags, OutputArray centers=noArray())
clusters the input data using k-Means algorithm
const CvArr const CvArr CvArr * result
Definition: core_c.h:805
SavedIndexParams(std::string filename)
Definition: flann_base.hpp:65
GLuint GLuint GLsizei GLenum const GLvoid * indices
Definition: legacy.hpp:3084
int getClusterCenters(Matrix< DistanceType > ¢ers)
Definition: kmeans_index.h:459
IndexHeader load_header(FILE *stream)
Definition: saving.h:107
size_t veclen() const
Definition: flann_base.hpp:169
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.
GLenum const GLfloat * params
Definition: compat.hpp:688
NNIndex< Distance > * load_saved_index(const Matrix< typename Distance::ElementType > &dataset, const std::string &filename, Distance distance)
Definition: flann_base.hpp:74
FLANN_DEPRECATED const IndexParams * getIndexParameters()
Returns index parameters.
Definition: flann_base.hpp:254
void findNeighbors(ResultSet< DistanceType > &result, const ElementType *vec, const SearchParams &searchParams)
Method that searches for nearest-neighbours.
Definition: flann_base.hpp:237
Distance::ElementType ElementType
Definition: flann_base.hpp:104
virtual int usedMemory() const
Definition: flann_base.hpp:193
FLANN_DEPRECATED NNIndex< Distance > * getIndex()
Returns actual index.
Definition: flann_base.hpp:245
Definition: nn_index.h:48
size_t rows
Definition: matrix.h:51
GLsizei const GLfloat * points
CvMat * header
Definition: core_c.h:361
virtual void saveIndex(FILE *stream)
Saves the index to a stream.
Definition: flann_base.hpp:152
void buildIndex()
Definition: flann_base.hpp:130
CvPoint int radius
Definition: core_c.h:1290
int hierarchicalClustering(const Matrix< typename Distance::ElementType > &points, Matrix< typename Distance::ResultType > ¢ers, const KMeansIndexParams ¶ms, Distance d=Distance())
Definition: flann_base.hpp:280
Distance::ResultType DistanceType
Definition: flann_base.hpp:105
~Index()
Definition: flann_base.hpp:122
void log_verbosity(int level)
Definition: flann_base.hpp:53