50 lines
1.5 KiB
C++
50 lines
1.5 KiB
C++
|
// 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.
|
||
|
#include "perf_precomp.hpp"
|
||
|
|
||
|
namespace opencv_test { namespace {
|
||
|
|
||
|
typedef tuple<bool, Size, int, int, MatType> AMPerfTestParam;
|
||
|
typedef TestBaseWithParam<AMPerfTestParam> AdaptiveManifoldPerfTest;
|
||
|
|
||
|
PERF_TEST_P( AdaptiveManifoldPerfTest, perf,
|
||
|
Combine(
|
||
|
Values(true, false), //adjust_outliers flag
|
||
|
Values(sz1080p, sz720p), //size
|
||
|
Values(1, 3, 8), //joint channels num
|
||
|
Values(1, 3), //source channels num
|
||
|
Values(CV_8U, CV_32F) //source and joint depth
|
||
|
)
|
||
|
)
|
||
|
{
|
||
|
AMPerfTestParam params = GetParam();
|
||
|
bool adjustOutliers = get<0>(params);
|
||
|
Size sz = get<1>(params);
|
||
|
int jointCnNum = get<2>(params);
|
||
|
int srcCnNum = get<3>(params);
|
||
|
int depth = get<4>(params);
|
||
|
|
||
|
Mat joint(sz, CV_MAKE_TYPE(depth, jointCnNum));
|
||
|
Mat src(sz, CV_MAKE_TYPE(depth, srcCnNum));
|
||
|
Mat dst(sz, CV_MAKE_TYPE(depth, srcCnNum));
|
||
|
|
||
|
declare.in(joint, src, WARMUP_RNG).out(dst);
|
||
|
|
||
|
double sigma_s = 16;
|
||
|
double sigma_r = 0.5;
|
||
|
TEST_CYCLE_N(3)
|
||
|
{
|
||
|
Mat res;
|
||
|
amFilter(joint, src, res, sigma_s, sigma_r, adjustOutliers);
|
||
|
|
||
|
//at 5th cycle sigma_s will be five times more and tree depth will be 5
|
||
|
sigma_s *= 1.38;
|
||
|
sigma_r /= 1.38;
|
||
|
}
|
||
|
|
||
|
SANITY_CHECK_NOTHING();
|
||
|
}
|
||
|
|
||
|
}} // namespace
|