From d99f4a2beb80ada3289354b585ae34b36d1a11e0 Mon Sep 17 00:00:00 2001 From: Leonid Beynenson Date: Tue, 13 Sep 2011 21:57:42 +0000 Subject: [PATCH] Since there is no a standard functions cv::min and cv::max which has cv::Scalar argument, removed the performance tests, calling the functions cv::min and cv::max with cv::Scalar argument. Instead of them two performance tests were created which call the functions cv::min and cv::max with 'double' argument. --- modules/core/perf/perf_core_arithm.cpp | 2 -- modules/core/perf/perf_minmax.cpp | 39 ++++++++++++++++++++++++++ 2 files changed, 39 insertions(+), 2 deletions(-) create mode 100644 modules/core/perf/perf_minmax.cpp diff --git a/modules/core/perf/perf_core_arithm.cpp b/modules/core/perf/perf_core_arithm.cpp index 8b5db8314..83d8d1ee8 100644 --- a/modules/core/perf/perf_core_arithm.cpp +++ b/modules/core/perf/perf_core_arithm.cpp @@ -59,8 +59,6 @@ PERF_TEST_P__CORE_ARITHM_SCALAR(bitwise_or, TYPICAL_MATS_BITW_ARITHM) PERF_TEST_P__CORE_ARITHM_SCALAR(bitwise_xor, TYPICAL_MATS_BITW_ARITHM) PERF_TEST_P__CORE_ARITHM_SCALAR(add, TYPICAL_MATS_CORE_ARITHM) PERF_TEST_P__CORE_ARITHM_SCALAR(subtract, TYPICAL_MATS_CORE_ARITHM) -PERF_TEST_P__CORE_ARITHM_SCALAR(min, TYPICAL_MATS_CORE_ARITHM) -PERF_TEST_P__CORE_ARITHM_SCALAR(max, TYPICAL_MATS_CORE_ARITHM) PERF_TEST_P__CORE_ARITHM_SCALAR(absdiff, TYPICAL_MATS_CORE_ARITHM) diff --git a/modules/core/perf/perf_minmax.cpp b/modules/core/perf/perf_minmax.cpp new file mode 100644 index 000000000..2d723809a --- /dev/null +++ b/modules/core/perf/perf_minmax.cpp @@ -0,0 +1,39 @@ +#include "perf_precomp.hpp" + +using namespace std; +using namespace cv; +using namespace perf; + +#define TYPICAL_MAT_SIZES_MINMAX TYPICAL_MAT_SIZES +#define TYPICAL_MAT_TYPES_MINMAX CV_8SC1, CV_8SC4, CV_32SC1, CV_32FC1 +#define TYPICAL_MATS_MINMAX testing::Combine( testing::Values( TYPICAL_MAT_SIZES_MINMAX), testing::Values( TYPICAL_MAT_TYPES_MINMAX) ) + +PERF_TEST_P(Size_MatType, min_double, TYPICAL_MATS_MINMAX) +{ + Size sz = std::tr1::get<0>(GetParam()); + int type = std::tr1::get<1>(GetParam()); + + cv::Mat a = Mat(sz, type); + cv::Mat c = Mat(sz, type); + + declare.in(a, ::perf::TestBase::WARMUP_RNG).out(c); + + TEST_CYCLE(100) cv::min(a, 10, c); + + SANITY_CHECK(c); +} + +PERF_TEST_P(Size_MatType, max_double, TYPICAL_MATS_MINMAX) +{ + Size sz = std::tr1::get<0>(GetParam()); + int type = std::tr1::get<1>(GetParam()); + + cv::Mat a = Mat(sz, type); + cv::Mat c = Mat(sz, type); + + declare.in(a, ::perf::TestBase::WARMUP_RNG).out(c); + + TEST_CYCLE(100) cv::max(a, 10, c); + + SANITY_CHECK(c); +}