Merge pull request #18604 from vrabaud:master

pull/19181/head^2
Alexander Alekhin 4 years ago
commit c84d2cb32a
  1. 6
      modules/flann/include/opencv2/flann/all_indices.h
  2. 1
      modules/flann/include/opencv2/flann/autotuned_index.h
  3. 1
      modules/flann/include/opencv2/flann/composite_index.h
  4. 6
      modules/flann/include/opencv2/flann/flann_base.hpp
  5. 10
      modules/flann/include/opencv2/flann/general.h
  6. 4
      modules/flann/include/opencv2/flann/hierarchical_clustering_index.h
  7. 2
      modules/flann/include/opencv2/flann/index_testing.h
  8. 1
      modules/flann/include/opencv2/flann/kdtree_index.h
  9. 1
      modules/flann/include/opencv2/flann/kdtree_single_index.h
  10. 6
      modules/flann/include/opencv2/flann/kmeans_index.h
  11. 1
      modules/flann/include/opencv2/flann/linear_index.h
  12. 1
      modules/flann/include/opencv2/flann/lsh_index.h
  13. 2
      modules/flann/include/opencv2/flann/matrix.h
  14. 1
      modules/flann/include/opencv2/flann/nn_index.h
  15. 2
      modules/flann/include/opencv2/flann/params.h
  16. 2
      modules/flann/include/opencv2/flann/random.h
  17. 14
      modules/flann/include/opencv2/flann/saving.h
  18. 1
      modules/flann/src/precomp.hpp

@ -82,7 +82,7 @@ struct index_creator
nnIndex = new LshIndex<Distance>(dataset, params, distance); nnIndex = new LshIndex<Distance>(dataset, params, distance);
break; break;
default: default:
throw FLANNException("Unknown index type"); FLANN_THROW(cv::Error::StsBadArg, "Unknown index type");
} }
return nnIndex; return nnIndex;
@ -111,7 +111,7 @@ struct index_creator<False,VectorSpace,Distance>
nnIndex = new LshIndex<Distance>(dataset, params, distance); nnIndex = new LshIndex<Distance>(dataset, params, distance);
break; break;
default: default:
throw FLANNException("Unknown index type"); FLANN_THROW(cv::Error::StsBadArg, "Unknown index type");
} }
return nnIndex; return nnIndex;
@ -140,7 +140,7 @@ struct index_creator<False,False,Distance>
nnIndex = new LshIndex<Distance>(dataset, params, distance); nnIndex = new LshIndex<Distance>(dataset, params, distance);
break; break;
default: default:
throw FLANNException("Unknown index type"); FLANN_THROW(cv::Error::StsBadArg, "Unknown index type");
} }
return nnIndex; return nnIndex;

@ -34,7 +34,6 @@
#include <sstream> #include <sstream>
#include "general.h"
#include "nn_index.h" #include "nn_index.h"
#include "ground_truth.h" #include "ground_truth.h"
#include "index_testing.h" #include "index_testing.h"

@ -33,7 +33,6 @@
//! @cond IGNORED //! @cond IGNORED
#include "general.h"
#include "nn_index.h" #include "nn_index.h"
#include "kdtree_index.h" #include "kdtree_index.h"
#include "kmeans_index.h" #include "kmeans_index.h"

@ -82,11 +82,11 @@ NNIndex<Distance>* load_saved_index(const Matrix<typename Distance::ElementType>
IndexHeader header = load_header(fin); IndexHeader header = load_header(fin);
if (header.data_type != Datatype<ElementType>::type()) { if (header.data_type != Datatype<ElementType>::type()) {
fclose(fin); fclose(fin);
throw FLANNException("Datatype of saved index is different than of the one to be created."); FLANN_THROW(cv::Error::StsError, "Datatype of saved index is different than of the one to be created.");
} }
if ((size_t(header.rows) != dataset.rows)||(size_t(header.cols) != dataset.cols)) { if ((size_t(header.rows) != dataset.rows)||(size_t(header.cols) != dataset.cols)) {
fclose(fin); fclose(fin);
throw FLANNException("The index saved belongs to a different dataset"); FLANN_THROW(cv::Error::StsError, "The index saved belongs to a different dataset");
} }
IndexParams params; IndexParams params;
@ -140,7 +140,7 @@ public:
{ {
FILE* fout = fopen(filename.c_str(), "wb"); FILE* fout = fopen(filename.c_str(), "wb");
if (fout == NULL) { if (fout == NULL) {
throw FLANNException("Cannot open file"); FLANN_THROW(cv::Error::StsError, "Cannot open file");
} }
save_header(fout, *nnIndex_); save_header(fout, *nnIndex_);
saveIndex(fout); saveIndex(fout);

@ -31,6 +31,8 @@
#ifndef OPENCV_FLANN_GENERAL_H_ #ifndef OPENCV_FLANN_GENERAL_H_
#define OPENCV_FLANN_GENERAL_H_ #define OPENCV_FLANN_GENERAL_H_
#if CV_VERSION_MAJOR <= 4
//! @cond IGNORED //! @cond IGNORED
#include "opencv2/core.hpp" #include "opencv2/core.hpp"
@ -48,6 +50,14 @@ public:
} }
#define FLANN_THROW(TYPE, STR) throw FLANNException(STR)
#else
#define FLANN_THROW(TYPE, STR) CV_Error(TYPE, STR)
#endif
//! @endcond //! @endcond
#endif /* OPENCV_FLANN_GENERAL_H_ */ #endif /* OPENCV_FLANN_GENERAL_H_ */

@ -382,7 +382,7 @@ public:
chooseCenters = &HierarchicalClusteringIndex::GroupWiseCenterChooser; chooseCenters = &HierarchicalClusteringIndex::GroupWiseCenterChooser;
} }
else { else {
throw FLANNException("Unknown algorithm for choosing initial centers."); FLANN_THROW(cv::Error::StsError, "Unknown algorithm for choosing initial centers.");
} }
root = new NodePtr[trees_]; root = new NodePtr[trees_];
@ -446,7 +446,7 @@ public:
void buildIndex() CV_OVERRIDE void buildIndex() CV_OVERRIDE
{ {
if (branching_<2) { if (branching_<2) {
throw FLANNException("Branching factor must be at least 2"); FLANN_THROW(cv::Error::StsError, "Branching factor must be at least 2");
} }
free_indices(); free_indices();

@ -93,7 +93,7 @@ float search_with_ground_truth(NNIndex<Distance>& index, const Matrix<typename D
if (matches.cols<size_t(nn)) { if (matches.cols<size_t(nn)) {
Logger::info("matches.cols=%d, nn=%d\n",matches.cols,nn); Logger::info("matches.cols=%d, nn=%d\n",matches.cols,nn);
throw FLANNException("Ground truth is not computed for as many neighbors as requested"); FLANN_THROW(cv::Error::StsError, "Ground truth is not computed for as many neighbors as requested");
} }
KNNResultSet<DistanceType> resultSet(nn+skipMatches); KNNResultSet<DistanceType> resultSet(nn+skipMatches);

@ -37,7 +37,6 @@
#include <map> #include <map>
#include <cstring> #include <cstring>
#include "general.h"
#include "nn_index.h" #include "nn_index.h"
#include "dynamic_bitset.h" #include "dynamic_bitset.h"
#include "matrix.h" #include "matrix.h"

@ -37,7 +37,6 @@
#include <map> #include <map>
#include <cstring> #include <cstring>
#include "general.h"
#include "nn_index.h" #include "nn_index.h"
#include "matrix.h" #include "matrix.h"
#include "result_set.h" #include "result_set.h"

@ -381,7 +381,7 @@ public:
chooseCenters = &KMeansIndex::chooseCentersKMeanspp; chooseCenters = &KMeansIndex::chooseCentersKMeanspp;
} }
else { else {
throw FLANNException("Unknown algorithm for choosing initial centers."); FLANN_THROW(cv::Error::StsBadArg, "Unknown algorithm for choosing initial centers.");
} }
cb_index_ = 0.4f; cb_index_ = 0.4f;
@ -453,7 +453,7 @@ public:
void buildIndex() CV_OVERRIDE void buildIndex() CV_OVERRIDE
{ {
if (branching_<2) { if (branching_<2) {
throw FLANNException("Branching factor must be at least 2"); FLANN_THROW(cv::Error::StsError, "Branching factor must be at least 2");
} }
free_indices(); free_indices();
@ -570,7 +570,7 @@ public:
{ {
int numClusters = centers.rows; int numClusters = centers.rows;
if (numClusters<1) { if (numClusters<1) {
throw FLANNException("Number of clusters must be at least 1"); FLANN_THROW(cv::Error::StsBadArg, "Number of clusters must be at least 1");
} }
DistanceType variance; DistanceType variance;

@ -33,7 +33,6 @@
//! @cond IGNORED //! @cond IGNORED
#include "general.h"
#include "nn_index.h" #include "nn_index.h"
namespace cvflann namespace cvflann

@ -42,7 +42,6 @@
#include <map> #include <map>
#include <vector> #include <vector>
#include "general.h"
#include "nn_index.h" #include "nn_index.h"
#include "matrix.h" #include "matrix.h"
#include "result_set.h" #include "result_set.h"

@ -35,8 +35,6 @@
#include <stdio.h> #include <stdio.h>
#include "general.h"
namespace cvflann namespace cvflann
{ {

@ -31,7 +31,6 @@
#ifndef OPENCV_FLANN_NNINDEX_H #ifndef OPENCV_FLANN_NNINDEX_H
#define OPENCV_FLANN_NNINDEX_H #define OPENCV_FLANN_NNINDEX_H
#include "general.h"
#include "matrix.h" #include "matrix.h"
#include "result_set.h" #include "result_set.h"
#include "params.h" #include "params.h"

@ -77,7 +77,7 @@ T get_param(const IndexParams& params, cv::String name)
return it->second.cast<T>(); return it->second.cast<T>();
} }
else { else {
throw FLANNException(cv::String("Missing parameter '")+name+cv::String("' in the parameters given")); FLANN_THROW(cv::Error::StsBadArg, cv::String("Missing parameter '")+name+cv::String("' in the parameters given"));
} }
} }

@ -37,8 +37,6 @@
#include <cstdlib> #include <cstdlib>
#include <vector> #include <vector>
#include "general.h"
namespace cvflann namespace cvflann
{ {

@ -112,11 +112,11 @@ inline IndexHeader load_header(FILE* stream)
size_t read_size = fread(&header,sizeof(header),1,stream); size_t read_size = fread(&header,sizeof(header),1,stream);
if (read_size!=(size_t)1) { if (read_size!=(size_t)1) {
throw FLANNException("Invalid index file, cannot read"); FLANN_THROW(cv::Error::StsError, "Invalid index file, cannot read");
} }
if (strcmp(header.signature,FLANN_SIGNATURE_)!=0) { if (strcmp(header.signature,FLANN_SIGNATURE_)!=0) {
throw FLANNException("Invalid index file, wrong signature"); FLANN_THROW(cv::Error::StsError, "Invalid index file, wrong signature");
} }
return header; return header;
@ -150,7 +150,7 @@ void load_value(FILE* stream, T& value, size_t count = 1)
{ {
size_t read_cnt = fread(&value, sizeof(value), count, stream); size_t read_cnt = fread(&value, sizeof(value), count, stream);
if (read_cnt != count) { if (read_cnt != count) {
throw FLANNException("Cannot read from file"); FLANN_THROW(cv::Error::StsParseError, "Cannot read from file");
} }
} }
@ -159,12 +159,12 @@ void load_value(FILE* stream, cvflann::Matrix<T>& value)
{ {
size_t read_cnt = fread(&value, sizeof(value), 1, stream); size_t read_cnt = fread(&value, sizeof(value), 1, stream);
if (read_cnt != 1) { if (read_cnt != 1) {
throw FLANNException("Cannot read from file"); FLANN_THROW(cv::Error::StsParseError, "Cannot read from file");
} }
value.data = new T[value.rows*value.cols]; value.data = new T[value.rows*value.cols];
read_cnt = fread(value.data, sizeof(T), value.rows*value.cols, stream); read_cnt = fread(value.data, sizeof(T), value.rows*value.cols, stream);
if (read_cnt != (size_t)(value.rows*value.cols)) { if (read_cnt != (size_t)(value.rows*value.cols)) {
throw FLANNException("Cannot read from file"); FLANN_THROW(cv::Error::StsParseError, "Cannot read from file");
} }
} }
@ -175,12 +175,12 @@ void load_value(FILE* stream, std::vector<T>& value)
size_t size; size_t size;
size_t read_cnt = fread(&size, sizeof(size_t), 1, stream); size_t read_cnt = fread(&size, sizeof(size_t), 1, stream);
if (read_cnt!=1) { if (read_cnt!=1) {
throw FLANNException("Cannot read from file"); FLANN_THROW(cv::Error::StsError, "Cannot read from file");
} }
value.resize(size); value.resize(size);
read_cnt = fread(&value[0], sizeof(T), size, stream); read_cnt = fread(&value[0], sizeof(T), size, stream);
if (read_cnt != size) { if (read_cnt != size) {
throw FLANNException("Cannot read from file"); FLANN_THROW(cv::Error::StsError, "Cannot read from file");
} }
} }

@ -13,7 +13,6 @@
#include "opencv2/flann/index_testing.h" #include "opencv2/flann/index_testing.h"
#include "opencv2/flann/params.h" #include "opencv2/flann/params.h"
#include "opencv2/flann/saving.h" #include "opencv2/flann/saving.h"
#include "opencv2/flann/general.h"
// index types // index types
#include "opencv2/flann/all_indices.h" #include "opencv2/flann/all_indices.h"

Loading…
Cancel
Save