From 45593030ab2ebe2b11e5dbed5ad5658963a9b983 Mon Sep 17 00:00:00 2001 From: Ilya Lavrenov Date: Mon, 1 Oct 2012 17:29:56 +0400 Subject: [PATCH] fixed TestRemap_Remap --- modules/imgproc/perf/perf_remap.cpp | 139 ++++++++++++++++++------------------ 1 file changed, 71 insertions(+), 68 deletions(-) diff --git a/modules/imgproc/perf/perf_remap.cpp b/modules/imgproc/perf/perf_remap.cpp index 53cfff9..5ec8f46 100644 --- a/modules/imgproc/perf/perf_remap.cpp +++ b/modules/imgproc/perf/perf_remap.cpp @@ -1,68 +1,71 @@ -#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; - -CV_ENUM(MatrixType, CV_16UC1, CV_16SC1, CV_32FC1) -CV_ENUM(MapType, CV_16SC2, CV_32FC1, CV_32FC2) -CV_ENUM(InterType, INTER_LINEAR, INTER_CUBIC, INTER_LANCZOS4, INTER_NEAREST) - -typedef TestBaseWithParam< tr1::tuple > TestRemap; - -PERF_TEST_P( TestRemap, Remap, - Combine( - Values( szVGA, sz1080p ), - ValuesIn( MatrixType::all() ), - ValuesIn( MapType::all() ), - ValuesIn( InterType::all() ) - ) -) -{ - Size sz; - int src_type, map1_type, inter_type; - - sz = get<0>(GetParam()); - src_type = get<1>(GetParam()); - map1_type = get<2>(GetParam()); - inter_type = get<3>(GetParam()); - - Mat src(sz, src_type); - Mat map1(sz, map1_type); - Mat dst(sz, src_type); - - Mat map2(map1_type == CV_32FC1 ? sz : Size(), CV_32FC1); - - RNG rng; - rng.fill(src, RNG::UNIFORM, 0, 256); - - for (int j = 0; j < map1.rows; ++j) - for (int i = 0; i < map1.cols; ++i) - switch (map1_type) - { - case CV_32FC1: - map1.at(j, i) = static_cast(src.cols - i - 1); - map2.at(j, i) = static_cast(j); - break; - case CV_32FC2: - map1.at(j, i)[0] = static_cast(src.cols - i - 1); - map1.at(j, i)[1] = static_cast(j); - break; - case CV_16SC2: - map1.at(j, i)[0] = static_cast(src.cols - i - 1); - map1.at(j, i)[1] = static_cast(j); - break; - default: - CV_Assert(0); - } - - - declare.in(src, WARMUP_RNG).out(dst).time(20); - - TEST_CYCLE() remap(src, dst, map1, map2, inter_type); - - SANITY_CHECK(dst); -} +#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; + +CV_ENUM(MatrixType, CV_16UC1, CV_16SC1, CV_32FC1) +CV_ENUM(MapType, CV_16SC2, CV_32FC1, CV_32FC2) +CV_ENUM(InterType, INTER_NEAREST, INTER_LINEAR, INTER_CUBIC, INTER_LANCZOS4) + +typedef TestBaseWithParam< tr1::tuple > TestRemap; + +PERF_TEST_P( TestRemap, Remap, + Combine( + Values( szVGA, sz1080p ), + ValuesIn( MatrixType::all() ), + ValuesIn( MapType::all() ), + ValuesIn( InterType::all() ) + ) +) +{ + Size sz; + int src_type, map1_type, inter_type; + + sz = get<0>(GetParam()); + src_type = get<1>(GetParam()); + map1_type = get<2>(GetParam()); + inter_type = get<3>(GetParam()); + + Mat src(sz, src_type), dst(sz, src_type), map1(sz, map1_type), map2; + if (map1_type == CV_32FC1) + map2.create(sz, CV_32FC1); + else if (inter_type != INTER_NEAREST && map1_type == CV_16SC2) + { + map2.create(sz, CV_16UC1); + map2 = Scalar::all(0); + } + + RNG rng; + rng.fill(src, RNG::UNIFORM, 0, 256); + + for (int j = 0; j < map1.rows; ++j) + for (int i = 0; i < map1.cols; ++i) + switch (map1_type) + { + case CV_32FC1: + map1.at(j, i) = static_cast(src.cols - i - 1); + map2.at(j, i) = static_cast(j); + break; + case CV_32FC2: + map1.at(j, i)[0] = static_cast(src.cols - i - 1); + map1.at(j, i)[1] = static_cast(j); + break; + case CV_16SC2: + map1.at(j, i)[0] = static_cast(src.cols - i - 1); + map1.at(j, i)[1] = static_cast(j); + break; + default: + CV_Assert(0); + } + + + declare.in(src, WARMUP_RNG).out(dst).time(20); + + TEST_CYCLE() remap(src, dst, map1, map2, inter_type); + + SANITY_CHECK(dst); +} -- 2.7.4