mirror of https://github.com/opencv/opencv.git
parent
16dd655dd3
commit
99d3ce52c5
7 changed files with 110 additions and 4 deletions
@ -0,0 +1,41 @@ |
||||
#include "perf_precomp.hpp" |
||||
|
||||
using namespace std; |
||||
using namespace cv; |
||||
using namespace perf; |
||||
|
||||
|
||||
typedef std::tr1::tuple<std::string, cv::Size> String_Size_t; |
||||
typedef perf::TestBaseWithParam<String_Size_t> String_Size; |
||||
|
||||
PERF_TEST_P(String_Size, asymm_circles_grid, testing::Values( |
||||
String_Size_t("cv/cameracalibration/asymmetric_circles/acircles1.jpg", Size(7,13)), |
||||
String_Size_t("cv/cameracalibration/asymmetric_circles/acircles2.jpg", Size(7,13)), |
||||
String_Size_t("cv/cameracalibration/asymmetric_circles/acircles3.jpg", Size(7,13)), |
||||
String_Size_t("cv/cameracalibration/asymmetric_circles/acircles4.jpg", Size(5,5)), |
||||
String_Size_t("cv/cameracalibration/asymmetric_circles/acircles5.jpg", Size(5,5)), |
||||
String_Size_t("cv/cameracalibration/asymmetric_circles/acircles6.jpg", Size(5,5)), |
||||
String_Size_t("cv/cameracalibration/asymmetric_circles/acircles7.jpg", Size(3,9)), |
||||
String_Size_t("cv/cameracalibration/asymmetric_circles/acircles8.jpg", Size(3,9)), |
||||
String_Size_t("cv/cameracalibration/asymmetric_circles/acircles9.jpg", Size(3,9)) |
||||
) |
||||
) |
||||
{ |
||||
String filename = getDataPath(std::tr1::get<0>(GetParam())); |
||||
Size gridSize = std::tr1::get<1>(GetParam()); |
||||
|
||||
Mat frame = imread(filename); |
||||
if (frame.empty()) |
||||
FAIL() << "Unable to load source image " << filename; |
||||
vector<Point2f> ptvec; |
||||
ptvec.resize(gridSize.area()); |
||||
|
||||
cvtColor(frame, frame, COLOR_BGR2GRAY); |
||||
|
||||
declare.in(frame).out(ptvec); |
||||
|
||||
TEST_CYCLE(100) |
||||
{ |
||||
ASSERT_TRUE(findCirclesGrid(frame, gridSize, ptvec, CALIB_CB_CLUSTERING | CALIB_CB_ASYMMETRIC_GRID)); |
||||
} |
||||
} |
@ -0,0 +1,3 @@ |
||||
#include "perf_precomp.hpp" |
||||
|
||||
CV_PERF_TEST_MAIN(calib3d) |
@ -0,0 +1,48 @@ |
||||
#include "perf_precomp.hpp" |
||||
|
||||
using namespace std; |
||||
using namespace cv; |
||||
using namespace perf; |
||||
|
||||
|
||||
typedef std::tr1::tuple<std::string, cv::Size> String_Size_t; |
||||
typedef perf::TestBaseWithParam<int> PointsNumber; |
||||
|
||||
PERF_TEST_P(PointsNumber, solvePnP, testing::Values(4, 3*9, 7*13) |
||||
) |
||||
{ |
||||
int pointsNum = GetParam(); |
||||
|
||||
vector<Point2f> points2d(pointsNum); |
||||
vector<Point3f> points3d(pointsNum); |
||||
Mat rvec = Mat::zeros(3, 1, CV_32FC1); |
||||
Mat tvec = Mat::zeros(3, 1, CV_32FC1); |
||||
|
||||
Mat distortion = Mat::zeros(5, 1, CV_32FC1); |
||||
Mat intrinsics = Mat::eye(3, 3, CV_32FC1); |
||||
intrinsics.at<float> (0, 0) = 400.0; |
||||
intrinsics.at<float> (1, 1) = 400.0; |
||||
intrinsics.at<float> (0, 2) = 640 / 2; |
||||
intrinsics.at<float> (1, 2) = 480 / 2; |
||||
|
||||
warmup(points3d, WARMUP_RNG); |
||||
warmup(rvec, WARMUP_RNG); |
||||
warmup(tvec, WARMUP_RNG); |
||||
|
||||
projectPoints(points3d, rvec, tvec, intrinsics, distortion, points2d); |
||||
|
||||
//add noise
|
||||
Mat noise(1, points2d.size(), CV_32FC2); |
||||
randu(noise, 0, 0.01); |
||||
add(points2d, noise, points2d); |
||||
|
||||
declare.in(points3d, points2d); |
||||
|
||||
TEST_CYCLE(1000) |
||||
{ |
||||
solvePnP(points3d, points2d, intrinsics, distortion, rvec, tvec, false); |
||||
} |
||||
|
||||
SANITY_CHECK(rvec); |
||||
SANITY_CHECK(tvec); |
||||
} |
@ -0,0 +1 @@ |
||||
#include "perf_precomp.hpp" |
@ -0,0 +1,13 @@ |
||||
#ifndef __OPENCV_PERF_PRECOMP_HPP__ |
||||
#define __OPENCV_PERF_PRECOMP_HPP__ |
||||
|
||||
#include "opencv2/ts/ts.hpp" |
||||
#include "opencv2/calib3d/calib3d.hpp" |
||||
#include "opencv2/highgui/highgui.hpp" |
||||
#include "opencv2/imgproc/imgproc.hpp" |
||||
|
||||
#if GTEST_CREATE_SHARED_LIBRARY |
||||
#error no modules except ts should have GTEST_CREATE_SHARED_LIBRARY defined |
||||
#endif |
||||
|
||||
#endif |
Loading…
Reference in new issue