|
|
|
@ -23,7 +23,7 @@ std::string qrcode_images_monitor[] = { |
|
|
|
|
}; |
|
|
|
|
std::string qrcode_images_multiple[] = { |
|
|
|
|
"2_qrcodes.png", "3_close_qrcodes.png", "3_qrcodes.png", "4_qrcodes.png", |
|
|
|
|
"5_qrcodes.png", "6_qrcodes.png", "7_qrcodes.png", "8_close_qrcodes.png" |
|
|
|
|
"5_qrcodes.png", "6_qrcodes.png", "7_qrcodes.png", "8_close_qrcodes.png" |
|
|
|
|
}; |
|
|
|
|
//#define UPDATE_QRCODE_TEST_DATA
|
|
|
|
|
#ifdef UPDATE_QRCODE_TEST_DATA |
|
|
|
@ -138,7 +138,6 @@ TEST(Objdetect_QRCode_Monitor, generate_test_data) |
|
|
|
|
file_config.release(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
TEST(Objdetect_QRCode_Multi, generate_test_data) |
|
|
|
|
{ |
|
|
|
|
const std::string root = "qrcode/multiple/"; |
|
|
|
@ -155,11 +154,12 @@ TEST(Objdetect_QRCode_Multi, generate_test_data) |
|
|
|
|
|
|
|
|
|
ASSERT_FALSE(src.empty()) << "Can't read image: " << image_path; |
|
|
|
|
std::vector<Point> corners; |
|
|
|
|
EXPECT_TRUE(detectQRCodeMulti(src, corners)); |
|
|
|
|
QRCodeDetector qrcode; |
|
|
|
|
EXPECT_TRUE(qrcode.detectMulti(src, corners)); |
|
|
|
|
#ifdef HAVE_QUIRC |
|
|
|
|
std::vector<cv::String> decoded_info; |
|
|
|
|
std::vector<Mat> straight_barcode; |
|
|
|
|
EXPECT_TRUE(decodeQRCodeMulti(src, corners, decoded_info, straight_barcode)); |
|
|
|
|
EXPECT_TRUE(qrcode.decodeMulti(src, corners, decoded_info, straight_barcode)); |
|
|
|
|
#endif |
|
|
|
|
file_config << "x" << "[:"; |
|
|
|
|
for(size_t j = 0; j < corners.size(); j += 4) |
|
|
|
@ -475,7 +475,6 @@ TEST_P(Objdetect_QRCode_Multi, regression) |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
INSTANTIATE_TEST_CASE_P(/**/, Objdetect_QRCode, testing::ValuesIn(qrcode_images_name)); |
|
|
|
|
INSTANTIATE_TEST_CASE_P(/**/, Objdetect_QRCode_Close, testing::ValuesIn(qrcode_images_close)); |
|
|
|
|
INSTANTIATE_TEST_CASE_P(/**/, Objdetect_QRCode_Monitor, testing::ValuesIn(qrcode_images_monitor)); |
|
|
|
@ -501,6 +500,23 @@ TEST(Objdetect_QRCode_decodeMulti, decode_regression_16491) |
|
|
|
|
#endif |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
TEST(Objdetect_QRCode_detectMulti, detect_regression_16961) |
|
|
|
|
{ |
|
|
|
|
const std::string name_current_image = "9_qrcodes.jpg"; |
|
|
|
|
const std::string root = "qrcode/multiple/"; |
|
|
|
|
|
|
|
|
|
std::string image_path = findDataFile(root + name_current_image); |
|
|
|
|
Mat src = imread(image_path); |
|
|
|
|
ASSERT_FALSE(src.empty()) << "Can't read image: " << image_path; |
|
|
|
|
|
|
|
|
|
QRCodeDetector qrcode; |
|
|
|
|
std::vector<Point> corners; |
|
|
|
|
EXPECT_TRUE(qrcode.detectMulti(src, corners)); |
|
|
|
|
ASSERT_FALSE(corners.empty()); |
|
|
|
|
size_t expect_corners_size = 36; |
|
|
|
|
EXPECT_EQ(corners.size(), expect_corners_size); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
TEST(Objdetect_QRCode_basic, not_found_qrcode) |
|
|
|
|
{ |
|
|
|
|
std::vector<Point> corners; |
|
|
|
|