@@ -163,7 +163,7 @@ struct SolvePnPRansac : testing::TestWithParam<cv::cuda::DeviceInfo>
163
163
164
164
CUDA_TEST_P (SolvePnPRansac, Accuracy)
165
165
{
166
- cv::Mat object = randomMat (cv::Size (5000 , 1 ), CV_32FC3, 0 , 100 );
166
+ cv::Mat object = randomMat (cv::Size (5000 , 1 ), CV_32FC3, - 2000 , 2000 );
167
167
cv::Mat camera_mat = randomMat (cv::Size (3 , 3 ), CV_32F, 0.5 , 1 );
168
168
camera_mat.at <float >(0 , 1 ) = 0 .f ;
169
169
camera_mat.at <float >(1 , 0 ) = 0 .f ;
@@ -174,7 +174,7 @@ CUDA_TEST_P(SolvePnPRansac, Accuracy)
174
174
cv::Mat rvec_gold;
175
175
cv::Mat tvec_gold;
176
176
rvec_gold = randomMat (cv::Size (3 , 1 ), CV_32F, 0 , 1 );
177
- tvec_gold = randomMat (cv::Size (3 , 1 ), CV_32F, 0 , 1 );
177
+ tvec_gold = randomMat (cv::Size (3 , 1 ), CV_32F, 0 , 1000 );
178
178
cv::projectPoints (object, rvec_gold, tvec_gold, camera_mat, cv::Mat (1 , 8 , CV_32F, cv::Scalar::all (0 )), image_vec);
179
179
180
180
cv::Mat rvec, tvec;
@@ -184,7 +184,7 @@ CUDA_TEST_P(SolvePnPRansac, Accuracy)
184
184
rvec, tvec, false , 200 , 2 .f , 100 , &inliers);
185
185
186
186
ASSERT_LE (cv::norm (rvec - rvec_gold), 1e-3 );
187
- ASSERT_LE (cv::norm (tvec - tvec_gold), 1e-3 );
187
+ ASSERT_LE (cv::norm (tvec, tvec_gold, NORM_L2 | NORM_RELATIVE ), 1e-3 );
188
188
}
189
189
190
190
INSTANTIATE_TEST_CASE_P (CUDA_Calib3D, SolvePnPRansac, ALL_DEVICES);
0 commit comments