diff --git a/modules/imgproc/perf/perf_moments.cpp b/modules/imgproc/perf/perf_moments.cpp new file mode 100644 index 0000000000..9b3c5428f3 --- /dev/null +++ b/modules/imgproc/perf/perf_moments.cpp @@ -0,0 +1,38 @@ +// This file is part of OpenCV project. +// It is subject to the license terms in the LICENSE file found in the top-level directory +// of this distribution and at http://opencv.org/license.html. + +// Copyright (C) 2014, Itseez, Inc., all rights reserved. +// Third party copyrights are property of their respective owners. + +#include "perf_precomp.hpp" + +using namespace std; +using namespace cv; +using namespace perf; +using namespace testing; +using std::tr1::make_tuple; +using std::tr1::get; + +typedef std::tr1::tuple MomentsParams_t; +typedef perf::TestBaseWithParam MomentsFixture_val; + +PERF_TEST_P(MomentsFixture_val, Moments1, + ::testing::Combine( + testing::Values(TYPICAL_MAT_SIZES), + testing::Values(CV_16U, CV_16S, CV_32F, CV_64F), + testing::Bool())) +{ + const MomentsParams_t params = GetParam(); + const Size srcSize = get<0>(params); + const MatDepth srcDepth = get<1>(params); + const bool binaryImage = get<2>(params); + + cv::Moments m; + Mat src(srcSize, srcDepth); + declare.in(src, WARMUP_RNG); + + TEST_CYCLE() m = cv::moments(src, binaryImage); + + SANITY_CHECK_MOMENTS(m, 1e-4, ERROR_RELATIVE); +}