From 213241c06a96217fd7421b49bce94251f8d41f9d Mon Sep 17 00:00:00 2001 From: edgarriba Date: Mon, 11 Aug 2014 09:44:24 +0200 Subject: [PATCH] DLS test update --- modules/calib3d/src/solvepnp.cpp | 2 +- modules/calib3d/test/test_solvepnp_ransac.cpp | 13 +++++++------ 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/modules/calib3d/src/solvepnp.cpp b/modules/calib3d/src/solvepnp.cpp index 00bfd549d..006532d99 100644 --- a/modules/calib3d/src/solvepnp.cpp +++ b/modules/calib3d/src/solvepnp.cpp @@ -161,7 +161,7 @@ public: float* err = _err.getMat().ptr(); for ( i = 0; i < count; ++i) - err[i] = cv::norm( ipoints_ptr[i] - projpoints_ptr[i] ); + err[i] = (float)cv::norm( ipoints_ptr[i] - projpoints_ptr[i] ); } diff --git a/modules/calib3d/test/test_solvepnp_ransac.cpp b/modules/calib3d/test/test_solvepnp_ransac.cpp index 6e87fb952..48f8cdef0 100644 --- a/modules/calib3d/test/test_solvepnp_ransac.cpp +++ b/modules/calib3d/test/test_solvepnp_ransac.cpp @@ -136,7 +136,7 @@ protected: } solvePnPRansac(points, projectedPoints, intrinsics, distCoeffs, rvec, tvec, - false, 500, 0.5, 0.99, inliers, method); + false, 500, 0.5, 0.9, inliers, method); bool isTestSuccess = inliers.size() >= points.size()*0.95; @@ -155,11 +155,9 @@ protected: ts->set_failed_test_info(cvtest::TS::OK); vector points, points_dls; - const int pointsCount = 500, pointsCount2 = 100; + const int pointsCount = 500; points.resize(pointsCount); - points_dls.resize(pointsCount2); generate3DPointCloud(points); - generate3DPointCloud(points_dls); const int methodsCount = 4; RNG rng = ts->get_rng(); @@ -173,8 +171,7 @@ protected: int successfulTestsCount = 0; for (int testIndex = 0; testIndex < totalTestsCount; testIndex++) { - vector points_ = method != 3 ? points : points_dls; - if (runTest(rng, mode, method, points_, eps, maxError)) + if (runTest(rng, mode, method, points, eps, maxError)) successfulTestsCount++; } //cout << maxError << " " << successfulTestsCount << endl; @@ -222,6 +219,10 @@ protected: { opoints = std::vector(points.begin(), points.begin()+4); } + else if(method == 3) + { + opoints = std::vector(points.begin(), points.begin()+20); + } else opoints = points;