flann: std::vector<size_t> can't be converted into cv::Mat properly
authorAlexander Alekhin <alexander.alekhin@intel.com>
Wed, 30 Aug 2017 10:11:10 +0000 (13:11 +0300)
committerAlexander Alekhin <alexander.alekhin@intel.com>
Wed, 30 Aug 2017 10:16:00 +0000 (13:16 +0300)
size_t is not supported cv::Mat type

modules/flann/include/opencv2/flann/lsh_table.h

index fa7cc71..1db9960 100644 (file)
@@ -354,8 +354,8 @@ inline LshTable<unsigned char>::LshTable(unsigned int feature_size, unsigned int
     mask_ = std::vector<size_t>((feature_size * sizeof(char) + sizeof(size_t) - 1) / sizeof(size_t), 0);
 
     // A bit brutal but fast to code
-    std::vector<size_t> indices(feature_size * CHAR_BIT);
-    for (size_t i = 0; i < feature_size * CHAR_BIT; ++i) indices[i] = i;
+    std::vector<int> indices(feature_size * CHAR_BIT);
+    for (size_t i = 0; i < feature_size * CHAR_BIT; ++i) indices[i] = (int)i;
 #ifndef OPENCV_FLANN_USE_STD_RAND
     cv::randShuffle(indices);
 #else