mirror of
https://github.com/opencv/opencv_contrib.git
synced 2025-10-19 02:16:34 +08:00
build: fix C++17 build
This commit is contained in:
@@ -40,13 +40,16 @@
|
|||||||
//
|
//
|
||||||
//M*/
|
//M*/
|
||||||
|
|
||||||
|
#include "precomp.hpp"
|
||||||
#include "opencv2/core/core_c.h"
|
#include "opencv2/core/core_c.h"
|
||||||
#include "opencv2/core/private.hpp"
|
#include "opencv2/core/private.hpp"
|
||||||
#include "opencv2/flann/miniflann.hpp"
|
#include "opencv2/flann/miniflann.hpp"
|
||||||
#include "opencv2/imgcodecs.hpp"
|
#include "opencv2/imgcodecs.hpp"
|
||||||
#include "precomp.hpp"
|
|
||||||
#include "opencl_kernels_optflow.hpp"
|
#include "opencl_kernels_optflow.hpp"
|
||||||
#include "opencv2/core/hal/intrin.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.
|
/* 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.
|
* 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.
|
// with a small displacement and train to better distinguish hard pairs.
|
||||||
std::nth_element( mag.begin(), mag.begin() + n, mag.end() );
|
std::nth_element( mag.begin(), mag.begin() + n, mag.end() );
|
||||||
mag.resize( n );
|
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() );
|
std::random_shuffle( mag.begin(), mag.end() );
|
||||||
|
#endif
|
||||||
n /= patchRadius;
|
n /= patchRadius;
|
||||||
mag.resize( n );
|
mag.resize( n );
|
||||||
|
|
||||||
|
@@ -864,7 +864,12 @@ void VocData::calcPrecRecall_impl(const vector<char>& ground_truth, const vector
|
|||||||
{
|
{
|
||||||
recall_norm = recall_normalization;
|
recall_norm = recall_normalization;
|
||||||
} else {
|
} 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));
|
recall_norm = (int)std::count_if(ground_truth.begin(),ground_truth.end(),std::bind2nd(std::equal_to<char>(),(char)1));
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
ap = 0;
|
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
|
/* 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 */
|
it's necessary to extract the ground truth for the images under consideration */
|
||||||
getClassifierGroundTruth(obj_class, images, ground_truth);
|
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));
|
total_relevant = (int)std::count_if(ground_truth.begin(),ground_truth.end(),std::bind2nd(std::equal_to<char>(),(char)1));
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
/* iterate through images */
|
/* iterate through images */
|
||||||
|
Reference in New Issue
Block a user