mirror of
https://github.com/opencv/opencv_contrib.git
synced 2025-10-18 17:24:28 +08:00
build: fix C++17 build
This commit is contained in:
@@ -40,13 +40,16 @@
|
||||
//
|
||||
//M*/
|
||||
|
||||
#include "precomp.hpp"
|
||||
#include "opencv2/core/core_c.h"
|
||||
#include "opencv2/core/private.hpp"
|
||||
#include "opencv2/flann/miniflann.hpp"
|
||||
#include "opencv2/imgcodecs.hpp"
|
||||
#include "precomp.hpp"
|
||||
#include "opencl_kernels_optflow.hpp"
|
||||
#include "opencv2/core/hal/intrin.hpp"
|
||||
#ifdef CV_CXX11
|
||||
#include <random> // std::mt19937
|
||||
#endif
|
||||
|
||||
/* Disable "from double to float" and "from size_t to int" warnings.
|
||||
* Fixing these would make the code look ugly by introducing explicit cast all around.
|
||||
@@ -402,7 +405,12 @@ void getTrainingSamples( const Mat &from, const Mat &to, const Mat >, GPCSampl
|
||||
// with a small displacement and train to better distinguish hard pairs.
|
||||
std::nth_element( mag.begin(), mag.begin() + n, mag.end() );
|
||||
mag.resize( n );
|
||||
#ifdef CV_CXX11
|
||||
std::mt19937 std_rng(cv::theRNG()());
|
||||
std::shuffle(mag.begin(), mag.end(), std_rng);
|
||||
#else
|
||||
std::random_shuffle( mag.begin(), mag.end() );
|
||||
#endif
|
||||
n /= patchRadius;
|
||||
mag.resize( n );
|
||||
|
||||
|
@@ -864,7 +864,12 @@ void VocData::calcPrecRecall_impl(const vector<char>& ground_truth, const vector
|
||||
{
|
||||
recall_norm = recall_normalization;
|
||||
} else {
|
||||
#ifdef CV_CXX11
|
||||
recall_norm = (int)std::count_if(ground_truth.begin(),ground_truth.end(),
|
||||
[](const char a) { return a == (char)1; });
|
||||
#else
|
||||
recall_norm = (int)std::count_if(ground_truth.begin(),ground_truth.end(),std::bind2nd(std::equal_to<char>(),(char)1));
|
||||
#endif
|
||||
}
|
||||
|
||||
ap = 0;
|
||||
@@ -994,7 +999,12 @@ void VocData::calcClassifierConfMatRow(const string& obj_class, const vector<Obd
|
||||
/* in order to calculate the total number of relevant images for normalization of recall
|
||||
it's necessary to extract the ground truth for the images under consideration */
|
||||
getClassifierGroundTruth(obj_class, images, ground_truth);
|
||||
#ifdef CV_CXX11
|
||||
total_relevant = (int)std::count_if(ground_truth.begin(),ground_truth.end(),
|
||||
[](const char a) { return a == (char)1; });
|
||||
#else
|
||||
total_relevant = (int)std::count_if(ground_truth.begin(),ground_truth.end(),std::bind2nd(std::equal_to<char>(),(char)1));
|
||||
#endif
|
||||
}
|
||||
|
||||
/* iterate through images */
|
||||
|
Reference in New Issue
Block a user