|
|
|
@ -5,6 +5,16 @@ |
|
|
|
|
#include "test_precomp.hpp" |
|
|
|
|
namespace opencv_test { namespace { |
|
|
|
|
|
|
|
|
|
#if !defined CV_CXX11 |
|
|
|
|
// Wrapper for generating seeded random number via std::rand.
|
|
|
|
|
template<unsigned Seed> |
|
|
|
|
class SeededRandFunctor { |
|
|
|
|
public: |
|
|
|
|
SeededRandFunctor() { std::srand(Seed); } |
|
|
|
|
int operator()(int i) { return std::rand() % (i + 1); } |
|
|
|
|
}; |
|
|
|
|
#endif |
|
|
|
|
|
|
|
|
|
std::string encode_qrcode_images_name[] = { |
|
|
|
|
"version1_mode1.png", "version1_mode2.png", "version1_mode4.png", |
|
|
|
|
"version2_mode1.png", "version2_mode2.png", "version2_mode4.png", |
|
|
|
@ -381,8 +391,15 @@ TEST(Objdetect_QRCode_Encode_Decode_Structured_Append, DISABLED_regression) |
|
|
|
|
std::string symbol_set = config["symbols_set"]; |
|
|
|
|
|
|
|
|
|
std::string input_info = symbol_set; |
|
|
|
|
std::random_shuffle(input_info.begin(), input_info.end()); |
|
|
|
|
|
|
|
|
|
#if defined CV_CXX11 |
|
|
|
|
// std::random_shuffle is deprecated since C++11 and removed in C++17.
|
|
|
|
|
// Use manually constructed RNG with a fixed seed and std::shuffle instead.
|
|
|
|
|
std::mt19937 rand_gen {1}; |
|
|
|
|
std::shuffle(input_info.begin(), input_info.end(), rand_gen); |
|
|
|
|
#else |
|
|
|
|
SeededRandFunctor<1> rand_gen; |
|
|
|
|
std::random_shuffle(input_info.begin(), input_info.end(), rand_gen); |
|
|
|
|
#endif |
|
|
|
|
for (int j = min_stuctures_num; j < max_stuctures_num; j++) |
|
|
|
|
{ |
|
|
|
|
QRCodeEncoder::Params params; |
|
|
|
|