From b96a556fff9710f2aeea82c234280818e6382a16 Mon Sep 17 00:00:00 2001 From: Ivan Korolev Date: Wed, 15 Feb 2012 10:24:47 +0000 Subject: [PATCH] Created a perftest for convertTo, updated perftests for arithmetical operations --- modules/core/perf/perf_arithm.cpp | 2 +- modules/core/perf/pert_convertTo.cpp | 36 ++++++++++++++++++++++++++++++++++++ 2 files changed, 37 insertions(+), 1 deletion(-) create mode 100644 modules/core/perf/pert_convertTo.cpp diff --git a/modules/core/perf/perf_arithm.cpp b/modules/core/perf/perf_arithm.cpp index e49a927..ea05360 100644 --- a/modules/core/perf/perf_arithm.cpp +++ b/modules/core/perf/perf_arithm.cpp @@ -7,7 +7,7 @@ using std::tr1::make_tuple; using std::tr1::get; #define TYPICAL_MAT_SIZES_CORE_ARITHM TYPICAL_MAT_SIZES -#define TYPICAL_MAT_TYPES_CORE_ARITHM CV_8UC1, CV_8SC1, CV_8UC4, CV_32SC1, CV_32FC1 +#define TYPICAL_MAT_TYPES_CORE_ARITHM CV_8UC1, CV_8SC1, CV_16SC1, CV_16SC2, CV_16SC3, CV_16SC4, CV_8UC4, CV_32SC1, CV_32FC1 #define TYPICAL_MATS_CORE_ARITHM testing::Combine( testing::Values( TYPICAL_MAT_SIZES_CORE_ARITHM ), testing::Values( TYPICAL_MAT_TYPES_CORE_ARITHM ) ) #ifdef ANDROID diff --git a/modules/core/perf/pert_convertTo.cpp b/modules/core/perf/pert_convertTo.cpp new file mode 100644 index 0000000..9032d2f --- /dev/null +++ b/modules/core/perf/pert_convertTo.cpp @@ -0,0 +1,36 @@ +#include "perf_precomp.hpp" + +using namespace std; +using namespace cv; +using namespace perf; +using std::tr1::make_tuple; +using std::tr1::get; + +typedef std::tr1::tuple Size_DepthSrc_DepthDst_Channels_alpha_t; +typedef perf::TestBaseWithParam Size_DepthSrc_DepthDst_Channels_alpha; + +PERF_TEST_P( Size_DepthSrc_DepthDst_Channels_alpha, convertTo, + testing::Combine + ( + testing::Values(TYPICAL_MAT_SIZES), + testing::Values(CV_8U, CV_16S), + testing::Values(CV_8U, CV_16S, CV_32F, CV_64F), + testing::Values(1, 2, 3, 4), + testing::Values(1.0, 1./255) + ) + ) +{ + Size sz = get<0>(GetParam()); + int depthSrc = get<1>(GetParam()); + int depthDst = get<2>(GetParam()); + int channels = get<3>(GetParam()); + double alpha = get<4>(GetParam()); + + Mat src(sz, CV_MAKETYPE(depthSrc, channels)); + randu(src, 0, 255); + Mat dst(sz, CV_MAKETYPE(depthDst, channels)); + + TEST_CYCLE() src.convertTo(dst, depthDst, alpha); + + SANITY_CHECK(dst); +} \ No newline at end of file -- 2.7.4