diff --git a/modules/calib3d/test/test_chesscorners.cpp b/modules/calib3d/test/test_chesscorners.cpp index e55d069de0..73e91e1942 100644 --- a/modules/calib3d/test/test_chesscorners.cpp +++ b/modules/calib3d/test/test_chesscorners.cpp @@ -468,5 +468,24 @@ TEST(Calib3d_AsymmetricCirclesPatternDetector, accuracy) { CV_ChessboardDetector TEST(Calib3d_AsymmetricCirclesPatternDetectorWithClustering, accuracy) { CV_ChessboardDetectorTest test( ASYMMETRIC_CIRCLES_GRID, CALIB_CB_CLUSTERING ); test.safe_run(); } #endif +TEST(Calib3d_CirclesPatternDetectorWithClustering, accuracy) +{ + cv::String dataDir = string(TS::ptr()->get_data_path()) + "cv/cameracalibration/circles/"; + + cv::Mat expected; + FileStorage fs(dataDir + "circles_corners15.dat", FileStorage::READ); + fs["corners"] >> expected; + fs.release(); + + cv::Mat image = cv::imread(dataDir + "circles15.png"); + + std::vector centers; + cv::findCirclesGrid(image, Size(10, 8), centers, CALIB_CB_SYMMETRIC_GRID | CALIB_CB_CLUSTERING); + ASSERT_EQ(expected.total(), centers.size()); + + double error = calcError(centers, expected); + ASSERT_LE(error, precise_success_error_level); +} + }} // namespace /* End of file. */