|
|
|
@ -329,26 +329,26 @@ TEST(Calib3d_SolvePnPRansac, input_type) |
|
|
|
|
} |
|
|
|
|
Mat R1, t1, R2, t2, R3, t3, R4, t4; |
|
|
|
|
|
|
|
|
|
ASSERT_TRUE(solvePnPRansac(points3d, points2d, intrinsics, cv::Mat(), R1, t1)); |
|
|
|
|
EXPECT_TRUE(solvePnPRansac(points3d, points2d, intrinsics, cv::Mat(), R1, t1)); |
|
|
|
|
|
|
|
|
|
Mat points3dMat(points3d); |
|
|
|
|
Mat points2dMat(points2d); |
|
|
|
|
ASSERT_TRUE(solvePnPRansac(points3dMat, points2dMat, intrinsics, cv::Mat(), R2, t2)); |
|
|
|
|
EXPECT_TRUE(solvePnPRansac(points3dMat, points2dMat, intrinsics, cv::Mat(), R2, t2)); |
|
|
|
|
|
|
|
|
|
points3dMat = points3dMat.reshape(3, 1); |
|
|
|
|
points2dMat = points2dMat.reshape(2, 1); |
|
|
|
|
ASSERT_TRUE(solvePnPRansac(points3dMat, points2dMat, intrinsics, cv::Mat(), R3, t3)); |
|
|
|
|
EXPECT_TRUE(solvePnPRansac(points3dMat, points2dMat, intrinsics, cv::Mat(), R3, t3)); |
|
|
|
|
|
|
|
|
|
points3dMat = points3dMat.reshape(1, numPoints); |
|
|
|
|
points2dMat = points2dMat.reshape(1, numPoints); |
|
|
|
|
ASSERT_TRUE(solvePnPRansac(points3dMat, points2dMat, intrinsics, cv::Mat(), R4, t4)); |
|
|
|
|
|
|
|
|
|
ASSERT_LE(norm(R1, R2, NORM_INF), 1e-6); |
|
|
|
|
ASSERT_LE(norm(t1, t2, NORM_INF), 1e-6); |
|
|
|
|
ASSERT_LE(norm(R1, R3, NORM_INF), 1e-6); |
|
|
|
|
ASSERT_LE(norm(t1, t3, NORM_INF), 1e-6); |
|
|
|
|
ASSERT_LE(norm(R1, R4, NORM_INF), 1e-6); |
|
|
|
|
ASSERT_LE(norm(t1, t4, NORM_INF), 1e-6); |
|
|
|
|
EXPECT_TRUE(solvePnPRansac(points3dMat, points2dMat, intrinsics, cv::Mat(), R4, t4)); |
|
|
|
|
|
|
|
|
|
EXPECT_LE(norm(R1, R2, NORM_INF), 1e-6); |
|
|
|
|
EXPECT_LE(norm(t1, t2, NORM_INF), 1e-6); |
|
|
|
|
EXPECT_LE(norm(R1, R3, NORM_INF), 1e-6); |
|
|
|
|
EXPECT_LE(norm(t1, t3, NORM_INF), 1e-6); |
|
|
|
|
EXPECT_LE(norm(R1, R4, NORM_INF), 1e-6); |
|
|
|
|
EXPECT_LE(norm(t1, t4, NORM_INF), 1e-6); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
TEST(Calib3d_SolvePnP, double_support) |
|
|
|
@ -372,8 +372,8 @@ TEST(Calib3d_SolvePnP, double_support) |
|
|
|
|
solvePnPRansac(points3dF, points2dF, intrinsics, cv::Mat(), RF, tF, true, 100, 8.f, 0.999, inliers, cv::SOLVEPNP_P3P); |
|
|
|
|
solvePnPRansac(points3d, points2d, intrinsics, cv::Mat(), R, t, true, 100, 8.f, 0.999, inliers, cv::SOLVEPNP_P3P); |
|
|
|
|
|
|
|
|
|
ASSERT_LE(norm(R, Mat_<double>(RF), NORM_INF), 1e-3); |
|
|
|
|
ASSERT_LE(norm(t, Mat_<double>(tF), NORM_INF), 1e-3); |
|
|
|
|
EXPECT_LE(norm(R, Mat_<double>(RF), NORM_INF), 1e-3); |
|
|
|
|
EXPECT_LE(norm(t, Mat_<double>(tF), NORM_INF), 1e-3); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
TEST(Calib3d_SolvePnP, translation) |
|
|
|
@ -402,16 +402,16 @@ TEST(Calib3d_SolvePnP, translation) |
|
|
|
|
tvec = (Mat_<float>(3,1) << 100, 100, 0); |
|
|
|
|
|
|
|
|
|
solvePnP(p3d, p2d, cameraIntrinsic, noArray(), rvec, tvec, true); |
|
|
|
|
ASSERT_TRUE(checkRange(rvec)); |
|
|
|
|
ASSERT_TRUE(checkRange(tvec)); |
|
|
|
|
EXPECT_TRUE(checkRange(rvec)); |
|
|
|
|
EXPECT_TRUE(checkRange(tvec)); |
|
|
|
|
|
|
|
|
|
rvec =(Mat_<double>(3,1) << 0, 0, 0); |
|
|
|
|
tvec = (Mat_<double>(3,1) << 100, 100, 0); |
|
|
|
|
solvePnP(p3d, p2d, cameraIntrinsic, noArray(), rvec, tvec, true); |
|
|
|
|
ASSERT_TRUE(checkRange(rvec)); |
|
|
|
|
ASSERT_TRUE(checkRange(tvec)); |
|
|
|
|
EXPECT_TRUE(checkRange(rvec)); |
|
|
|
|
EXPECT_TRUE(checkRange(tvec)); |
|
|
|
|
|
|
|
|
|
solvePnP(p3d, p2d, cameraIntrinsic, noArray(), rvec, tvec, false); |
|
|
|
|
ASSERT_TRUE(checkRange(rvec)); |
|
|
|
|
ASSERT_TRUE(checkRange(tvec)); |
|
|
|
|
EXPECT_TRUE(checkRange(rvec)); |
|
|
|
|
EXPECT_TRUE(checkRange(tvec)); |
|
|
|
|
} |
|
|
|
|